Példák a 6. fejezethez
1. példa
Irjunk C programot, amelyet a késôbbiek során xxx, yyy, vagy zzz néven akarunk elindítani. A program "vegye észre", hogy milyen néven indítottuk el, és
az ennek megfelelô üzenettel térjen vissza ! Milyen muveletek szükségesek a
fealadat megoldásához ?
Megoldás :
1.) A program megírása linkpelda.c néven:
#include <stdio.h>
#include <string.h>
void main( int argc, char *argv[] )
{
if( strcmp(argv[0],"xxx") == 0 )
printf("\n xxx neven indultam !\n");
else if( strcmp(argv[0],"yyy") == 0 )
printf("\n yyy neven indultam !\n");
else
printf("\n zzz neven indultam !\n");
}
2. Fordítás, futtatható állomány készítés :
cc linkpélda.c -o xxx
3. Láncolás ( hard link ) elvégzése :
ln xxx yyy
ln xxx zzz
Ezekután a programunkat a három név bármelyikén elindíthatjuk.
Figyeljük meg, hogy linkszámuk 3 lesz !
2. példa
Számoljuk meg, hogy hány file van az aktuális katalógusunkban !
Megoldás : ls -l | wc -l
A fejléc miatt az így kapott számból 1-et le kell vonni !
3. példa
Irassuk ki azon állományaink nevét, melyek ascii típusúak !
Megoldás : file * | grep "ascii"
4. példa
Hozzunk létre egy 6x3-as mátrixot , és rendezzük le 2.oszlopa szerint !
Megoldás : 1. A mátrix létrehozása : cat > matrix
1,234,5
1,23,6
2,99,67
34,8,90
0,1234,100
3,9,234
Ctrl-d <ENTER>
2. Rendezés : sort -n -bt, +1.0 -1.4 < matrix
34,8,90
3,9,234
1,23,6
2,99,67
1,234,5
0,1234,100
Vigyázat : sort -n -t, +1.0 -1.4 < matrix ; hatására az eredmény :
34,8,90
3,9,234
1,23,6
2,99,67
0,1234,100
1,234,5
Miért lett rossz a rendezés ?
5. példa
Adva vannak az rftc1 ill. rftc2 file-ok, kezdôbetu szerint rendezve. Tekintsük
meg ôket, majd fésüljük össze a két file-t az rftc1_2 file-ba úgy, hogy megengedjük az azonos nevek többszörös elôfordulását. Ezután végezzük el
az összefésülést úgy is, hogy az azonos nevek csak egyszer fordulajnak elô. Ez
esetben a file neve : urftc1_2 !
Megoldás :
1. Az rftc1 megtekintése : cat rftc1
albert
lipcsei
lisztes
2. Az rftc2 megtekintése : cat rftc2
albert
lipcsei
simon
3. Összefésülés többszörös elôfordulással :
sort -m -orftc1_2 rftc1 rftc2
4. Az rftc1_2 megtekintése : cat rftc1_2
albert
albert
lipcsei
lipcsei
lisztes
simon
5. Összefésülés egyszeres elôfordulással :
sort -mu -ourftc1_2 rftc1 rftc2
4. Az urftc1_2 megtekintése : cat urftc1_2
albert
lipcsei
lisztes
simon
6. példa
Listázzuk ki az alkönyvtárunkat file név szerint rendezve !
Megoldás : ls -l | sort +8.0 # A file név a 9. oszlop a listában !
7. példa
Irassuk ki a képernyôre és ezzel egyidejuleg egy felhasznalo nevu fileba is,
hogy kik vannak bejelentkezve a rendszerbe !
Megoldás : finger | tee felhasznalo
users | tee felhasznalo
w | tee felhasznalo
who | tee felhasznalo
A parancsok más-más formátumban listázzák ki a bejelentkezett
felhasználókat !
8. Példa
Irassuk ki a uniqtext állomány sor elôfordulásainak számát, nagyság szerint
rendezve !
Megoldás : sort uniqtext | uniq -c | sort -n | tail | cut -f1
9. példa
Helyezzünk el a szov állomány minden szava után a szóköz helyére egy formfeed
karaktert ( /f ) !
Megoldás : tr -cs "[a-z]" "\f" < szov
aaa
bbb
ccc
ddd
eee
fff
xxx
yyy
zzz
A Dune-News szerkesztôsége köszönetet mond Bodlaki Tamás tanárúrnak a
segítségéért, és a jegyzet rendelkezésünkre bocsájtásáért.