rilpoint_mw113

Linux:Sed és awk

(Változatok közti eltérés)
(Awk)
 
(9 közbeeső változat nincs mutatva)
1. sor: 1. sor:
== Sed ==
== Sed ==
-
* Készíts shell scripet, mely egy megadott fájl tartalmát úgy jeleníti meg, hogy az összes <code>this</code> szót cseréli a <code>that</code> szóra! <megoldas>
+
* Készíts shell scripet, mely egy megadott fájl tartalmát úgy jeleníti meg, hogy az összes <u>this</u> szót cseréli a <u>that</u> szóra! <megoldas>
<code lang="bash">
<code lang="bash">
#!/bin/bash
#!/bin/bash
33. sor: 33. sor:
cat /etc/passwd | awk -F: '{ print $1; }'
cat /etc/passwd | awk -F: '{ print $1; }'
</code></megoldas>
</code></megoldas>
-
 
+
* Készíts programot, mely kiszámítja a 3 négyzetét! A kiíráshoz használd a printf() függvényt! <megoldas>
-
* Készíts programot, mely kiszámítja a 3 négyzetét! A kiíráshoz használd a printf() függvényt!
+
<code lang="bash"> <megoldas>
<code lang="bash"> <megoldas>
#!/bin/bash
#!/bin/bash
cat /etc/passwd | awk -F: '
cat /etc/passwd | awk -F: '
BEGIN {
BEGIN {
-
   printf ("3^3=%d\n",3^3) ;
+
   printf ("3^2=%d\n",3^2) ;
}'
}'
</code></megoldas>
</code></megoldas>
-
 
* Írasd ki a /etc/passwd fájlban található UID-eket lebegőpontos (6 egész és 2 tizedes), egész, oktális és hexadecimális számként, végül jelenítsd meg a felhasználó bejelentkezési nevét is! <megoldas>
* Írasd ki a /etc/passwd fájlban található UID-eket lebegőpontos (6 egész és 2 tizedes), egész, oktális és hexadecimális számként, végül jelenítsd meg a felhasználó bejelentkezési nevét is! <megoldas>
<code lang="bash">
<code lang="bash">
51. sor: 49. sor:
}'
}'
</code></megoldas>
</code></megoldas>
-
 
* Írasd ki a /etc/passwd fájl tartalmát nagybetűssé alakítva! Az egyes sorok legyenek sorszámozva! <megoldas>
* Írasd ki a /etc/passwd fájl tartalmát nagybetűssé alakítva! Az egyes sorok legyenek sorszámozva! <megoldas>
<code lang="bash">
<code lang="bash">
#!/bin/bash
#!/bin/bash
FILE="/etc/passwd"
FILE="/etc/passwd"
-
cat $FILE | awk -F '
+
cat $FILE | awk -F: '
{
{
   printf ("%d: %s\n", NR, toupper($0));
   printf ("%d: %s\n", NR, toupper($0));
}'
}'
</code></megoldas>
</code></megoldas>
-
 
* Számítsd ki a /etc/passwd fájlban levő UID-ek összegét és átlagát! (Tudjuk, hogy ez az adat semmire sem utal, csupán azért használjuk ezt a fájlt, mert minden rendszerben megtalálható.) <megoldas>
* Számítsd ki a /etc/passwd fájlban levő UID-ek összegét és átlagát! (Tudjuk, hogy ez az adat semmire sem utal, csupán azért használjuk ezt a fájlt, mert minden rendszerben megtalálható.) <megoldas>
<code lang="bash">
<code lang="bash">
77. sor: 73. sor:
}'
}'
</code></megoldas>
</code></megoldas>
-
 
* Írd ki a képernyőre a /etc/group fájl leghosszabb sorát! [Módosíthatod a feladatot úgy, hogy a legrövidebb nem üres sort jelentítsd meg!] <megoldas>
* Írd ki a képernyőre a /etc/group fájl leghosszabb sorát! [Módosíthatod a feladatot úgy, hogy a legrövidebb nem üres sort jelentítsd meg!] <megoldas>
<code lang="bash">
<code lang="bash">
98. sor: 93. sor:
}'
}'
</code></megoldas>
</code></megoldas>
-
 
* Ellenőrizd, hogy mely felhasználóknak van 0-s UID-jük a /etc/passwd-ben! (Ezek teljes jogkörrel rendelkeznek a Unix rendszerekben.) <megoldas>
* Ellenőrizd, hogy mely felhasználóknak van 0-s UID-jük a /etc/passwd-ben! (Ezek teljes jogkörrel rendelkeznek a Unix rendszerekben.) <megoldas>
<code lang="bash">
<code lang="bash">
110. sor: 104. sor:
}'
}'
</code></megoldas>
</code></megoldas>
-
 
* Jelenítsd meg az acer.txt fájl sorait úgy, hogy a 40 karakternél hosszabb sorokat ne teljes hosszukban, hanem csak az első 40 karakterig írd ki, és annak jelzésére, hogy a sor ennél hosszabb, a végére írj három pontot! Minden sor elején jelenjen meg, hogy mekkora annak teljes hossza! <megoldas>
* Jelenítsd meg az acer.txt fájl sorait úgy, hogy a 40 karakternél hosszabb sorokat ne teljes hosszukban, hanem csak az első 40 karakterig írd ki, és annak jelzésére, hogy a sor ennél hosszabb, a végére írj három pontot! Minden sor elején jelenjen meg, hogy mekkora annak teljes hossza! <megoldas>
<code lang="bash">
<code lang="bash">
129. sor: 122. sor:
}'
}'
</code></megoldas>
</code></megoldas>
-
 
* Jelenítsd meg a 10-nél kisebb pozitív egész számokat és négyzeteiket! <megoldas>
* Jelenítsd meg a 10-nél kisebb pozitív egész számokat és négyzeteiket! <megoldas>
<code lang="bash">
<code lang="bash">
139. sor: 131. sor:
}
}
</code></megoldas>
</code></megoldas>
-
 
* Jelenítsd meg az /etc/passwd fájl sorait úgy, hogy a mezőket visszafelé íratod ki! Azaz az első mező utolsóként, a második utolsó előttiként, az utolsó pedig elsőként jelenjen meg! <megoldas>
* Jelenítsd meg az /etc/passwd fájl sorait úgy, hogy a mezőket visszafelé íratod ki! Azaz az első mező utolsóként, a második utolsó előttiként, az utolsó pedig elsőként jelenjen meg! <megoldas>
<code lang="bash">
<code lang="bash">
149. sor: 140. sor:
}'
}'
</code></megoldas>
</code></megoldas>
-
 
+
* Jelenítsd meg az /etc/passwd fájlt úgy, hogy minden sort visszafelé íratsz ki! <megoldas>
-
* Jelenítsd ,eg az /etc/passwd fájlt úgy, hogy minden sort visszafelé íratsz ki! <megoldas>
+
<code lang="bash">
<code lang="bash">
-
cat a.txt | grep -v ^# | awk -F' ' '
+
cat /etc/passwd | grep -v ^# | awk -F' ' '
   
   
function printRev(x) {
function printRev(x) {
168. sor: 158. sor:
}’
}’
</code></megoldas>
</code></megoldas>
-
 
* Írasd ki az /etc/passwd fájt sorait visszafelé, azaz a legutolsó sor jelenjen meg elsőként, az első pedig utolsóként! <megoldas>
* Írasd ki az /etc/passwd fájt sorait visszafelé, azaz a legutolsó sor jelenjen meg elsőként, az első pedig utolsóként! <megoldas>
<code lang="bash">
<code lang="bash">
179. sor: 168. sor:
}'
}'
</code></megoldas>
</code></megoldas>
-
 
-
 
* Készíts a /tmp/szolista.txt fájl szavairól előfordulási gyakoriságukat tartalmazó listát! A lista legyen rendezett, elöl a legtöbbet előforduló szó szerepeljen! Példa a kimenetre:
* Készíts a /tmp/szolista.txt fájl szavairól előfordulási gyakoriságukat tartalmazó listát! A lista legyen rendezett, elöl a legtöbbet előforduló szó szerepeljen! Példa a kimenetre:
**292 the
**292 the
**166 a
**166 a
**156 of <megoldas>
**156 of <megoldas>
-
 
<code lang="bash">
<code lang="bash">
#!/bin/bash
#!/bin/bash
201. sor: 187. sor:
}' | sort -n -r | more
}' | sort -n -r | more
</code></megoldas>
</code></megoldas>
-
 
* Készíts gyakorisági listát a /etc/passwd fájlban található shellekről, melyik hányszor fordul elő? <megoldas>
* Készíts gyakorisági listát a /etc/passwd fájlban található shellekről, melyik hányszor fordul elő? <megoldas>
<code lang="bash">
<code lang="bash">

A lap jelenlegi, 2013. április 23., 09:04-kori változata

Sed

  • Készíts shell scripet, mely egy megadott fájl tartalmát úgy jeleníti meg, hogy az összes this szót cseréli a that szóra!
  • Az előző feladatot oldd meg úgy, hogy a módosított szöveget írd vissza az eredeti fájlba! A módosítás előtti állapotról .bak kiterjesztéssel készüljön egy biztonsági másolat!

Awk

  • Készíts awk programot, mely a /etc/passwd fájlból kiírja a felhasználók bejelentkezési neveit!
  • Készíts programot, mely kiszámítja a 3 négyzetét! A kiíráshoz használd a printf() függvényt!
  • Írasd ki a /etc/passwd fájlban található UID-eket lebegőpontos (6 egész és 2 tizedes), egész, oktális és hexadecimális számként, végül jelenítsd meg a felhasználó bejelentkezési nevét is!
  • Írasd ki a /etc/passwd fájl tartalmát nagybetűssé alakítva! Az egyes sorok legyenek sorszámozva!
  • Számítsd ki a /etc/passwd fájlban levő UID-ek összegét és átlagát! (Tudjuk, hogy ez az adat semmire sem utal, csupán azért használjuk ezt a fájlt, mert minden rendszerben megtalálható.)
  • Írd ki a képernyőre a /etc/group fájl leghosszabb sorát! [Módosíthatod a feladatot úgy, hogy a legrövidebb nem üres sort jelentítsd meg!]
  • Ellenőrizd, hogy mely felhasználóknak van 0-s UID-jük a /etc/passwd-ben! (Ezek teljes jogkörrel rendelkeznek a Unix rendszerekben.)
  • Jelenítsd meg az acer.txt fájl sorait úgy, hogy a 40 karakternél hosszabb sorokat ne teljes hosszukban, hanem csak az első 40 karakterig írd ki, és annak jelzésére, hogy a sor ennél hosszabb, a végére írj három pontot! Minden sor elején jelenjen meg, hogy mekkora annak teljes hossza!
  • Jelenítsd meg a 10-nél kisebb pozitív egész számokat és négyzeteiket!
  • Jelenítsd meg az /etc/passwd fájl sorait úgy, hogy a mezőket visszafelé íratod ki! Azaz az első mező utolsóként, a második utolsó előttiként, az utolsó pedig elsőként jelenjen meg!
  • Jelenítsd meg az /etc/passwd fájlt úgy, hogy minden sort visszafelé íratsz ki!
  • Írasd ki az /etc/passwd fájt sorait visszafelé, azaz a legutolsó sor jelenjen meg elsőként, az első pedig utolsóként!
  • Készíts a /tmp/szolista.txt fájl szavairól előfordulási gyakoriságukat tartalmazó listát! A lista legyen rendezett, elöl a legtöbbet előforduló szó szerepeljen! Példa a kimenetre:
    • 292 the
    • 166 a
    • 156 of
  • Készíts gyakorisági listát a /etc/passwd fájlban található shellekről, melyik hányszor fordul elő?
Skin by RIL Partner