Vývojári Linuxu sa riadia filozofiou vytvárania malých programov, ktoré urobia jednu úlohu a urobia ju dobre. Ako príklad si vezmite nástroje na spracovanie textu v systéme Linux, sú ľahké a majú modulárne funkcie. Aj keď sa tieto nástroje na manipuláciu s textom líšia zložitosťou a funkčnosťou, sú užitočné v prostredí, kde nie je dostupné grafické používateľské rozhranie.
Článok sa zaoberá najlepšími nástrojmi Linuxu na čítanie súborov a používanie regulárnych výrazov na vykonávanie operácií s vybratým textom. Zahŕňa tiež ich najzákladnejšie funkcie a príklady pre lepšie pochopenie.
1. grep
grep je linuxový nástroj na manipuláciu s textom, ktorý hľadá reťazec znakov alebo vzorov známych ako regulárne výrazy v súbore alebo texte. Nástroj grep patrí do rodiny nástrojov, ktoré zahŕňajú egrep, fgrep a grep, medzi ktorými je fgrep najrýchlejší zo všetkých, zatiaľ čo grep je najjednoduchší.
Všeobecná syntax pre použitie grep je nasledovná:
grep -options string názov súboru
Ak chcete napríklad vyhľadať slovo „root“ v súbor /etc/passwd:
grep root /etc/passwd
Niektoré štandardné príklady príkazového riadka, ako začať, sú:
možnosti | Príklad | Popis |
---|---|---|
-c | grep -c |
Spočítajte počet riadkov, v ktorých reťazec existuje |
-i | grep -i |
Vykonajte vyhľadávanie zadaného reťazca bez ohľadu na veľkosť písmen |
-o | grep -o |
Vytlačí len zhodný reťazec |
-l | grep -l "passwd" | Vytlačí názvy súborov v aktuálnom adresári, ktoré zodpovedajú vzoru |
-n | grep -n |
Vytlačí číslo riadku pozdĺž riadku obsahujúceho zadaný reťazec |
reťazec1|reťazec2 | grep súbor "reťazec1|reťazec2". | Vyhľadanie a vytlačenie viacerých reťazcov zo súboru |
Podobne môžete použiť ^ metaznak pomocou príkazu grep na zobrazenie všetkých zodpovedajúcich reťazcov, ktoré začínajú určitými znakmi.
Napríklad nasledujúci príkaz spojí výstup príkazu env ako vstup do grep a zobrazí premenné, ktoré začínajú "HO":
env | grep ^HO
Súvisiace: Praktické príklady príkazov Linux Grep
2. awk
awk je výkonný skriptovací jazyk a nástroj na manipuláciu s textom v príkazovom riadku, ktorý dokáže skenovať riadok po riadku a porovnávať riadky so vzormi. Základná syntax príkazu awk je akcia definovaná v jednoduchých úvodzovkách a zložených zátvorkách, za ktorými nasleduje názov súboru.
awk názov súboru '{action}'
awk '{vzor; action}' názov súboru
Pomôcka vyhľadá súbor pomocou regulárnych výrazov a vykoná funkciu definovanú v parametri action. awk spustí skript na každom riadku, ak nenastavíte vzor, ako je uvedené nižšie:
awk '{print $1}' awk_examples.txt
...kde $1 zobrazí prvé pole awk_examples.txt súbor.
Nasledujúci príkaz vykoná funkciu tlače na danom vzore nahradením druhého poľa "Svet"s"Alice“ a zobrazí celý riadok (0 $):
echo "Ahoj svet" | awk '{$2="Alice"; vytlačiť $0}'
Výkon:
Ahoj Alice
Podobne môžete použiť funkciu vytlačiť $0 z vyššie uvedeného príkazu na emuláciu grep funkčnosť.
awk '/john/{print $0}' /etc/passwd
john: x: 1001:1001::/home/john:/bin/sh
3. triediť
sort je ďalší nástroj príkazového riadka systému Linux, ktorý vám pomáha zobraziť obsah zadaného textového súboru v zoradenom formáte. Napríklad výstup príkazu awk môžete použiť ako vstup do pomocného programu triedenia takto:
awk '{print $1}' awk_examples.txt | zoradiť > zoradiť_text.txt
cat sort_text.txt
Výkon:
Súvisiace: Ako triediť textové súbory v systéme Linux pomocou triedenia
4. sed
sed alebo stream editor berie vstup ako prúd znakov a vykonáva filtrovanie a transformáciu textu (odstránenie, nahradenie a nahradenie) zadaného textu.
Môžete ho použiť v skripte a upravovať súbory neinteraktívne. Najzákladnejším účelom nástroja je teda nahradenie reťazca/znakov. Všeobecná syntax je:
sed súbor 's/string/substitution/option'
Vytvorte súbor pomocou náhodných viet na precvičenie a pochopenie fungovania tohto nástroja.
Nahradme výskyt slova "dva" na každom riadku súboru s "2"pomocou -g príznak globálnej náhrady takto:
sed 's/two/2/g' sed_examples.txt > sed_examples2.txt
Podobne použite -d príznak na odstránenie konkrétneho riadku zo súboru:
sed '2d' sed_examples.txt
Reťazec môžete nahradiť aj zadaním čísla riadku (4 s/dva/2/s) a vytlačím iba nahradený riadok takto:
sed -n '4 s/dva/2/p' sed_examples2.txt
The -n príznak v príkaze vyššie zakáže automatickú tlač vstupného toku na výstup. Túto možnosť môžete použiť vo svoj prospech na nahradenie funkcie utility grep sed.
Napríklad vyššie uvedený príkaz môžete upraviť tak, že zahrniete iba vzor regulárneho výrazu /two/p také, že -p flag vytlačí iba riadky do štandardného výstupného toku.
sed -n '/dva/p' sed_examples2.txt
Súvisiace: Týchto 10 príkladov z vás spraví skúseného používateľa Linuxu
5. rezať
Vystrihnutie je ďalšia pomôcka príkazového riadka, ktorá vyrezáva/extrahuje časti textu z riadku alebo súboru. Vystrihne text na základe zadaného poľa, znaku alebo pozície bajtu a výsledok prenesie na štandardný výstup.
Pomôcka má nasledujúcu syntax:
rezať súbor
Použi -b možnosť vyrezať časť alebo obsah pomocou určeného bajtu alebo rozsahu bajtov:
cut -b 1 cut_examples.txt
Použi -c príznak na extrahovanie textu zadaním pozícií znakov:
cut -c 1,3,5 cut_examples.txt
Nakoniec môžete tiež extrahovať text zadaním polí pomocou -f možnosť a -d pre medzerník alebo oddeľovač poľa:
cut -d " " -f 1 cut_examples.txt
Tu je zoznam rozsahov s príkladmi a popismi, ktoré môžete použiť s postavou -c a bajt -b možnosti:
Rozsah | Príklad | Popis |
---|---|---|
n- | cut -c 7- názov súboru | Extrahujte znak od n-tého celého čísla po koniec riadku |
n-m | cut -b 7-15 názov súboru | Výťažky z celého čísla n-m každého riadku zo vstupného súboru |
-m | cut -c -7 názov súboru | Extrahuje riadky začínajúce od m do konca riadku |
Všimnite si, že pomocou poľa nemôžete definovať rozsahy pre extrakciu textu -f možnosť.
Manipulácia s textom pomocou príkazov Linuxu
Linux ponúka mnoho programov a nástrojov na manipuláciu a prácu so súbormi alebo textom. Naučiť sa ich všetky nemusí byť potrebné, pretože medzeru môžete ľahko vyplniť iným, keď jeden dobre ovládate, ako napríklad používanie sed ako grep alebo awk ako grep, ale to nemôže platiť pre každý nástroj.
Okrem toho majú príkazy Linuxu strmú krivku učenia, ale akonáhle si túto zručnosť rozviniete, môžu sa ukázať ako veľmi užitočné a efektívne v živote každého používateľa Linuxu, najmä správcu systému.
Už vás nebaví stará a nudná terminálová aplikácia, ktorá je predinštalovaná v systéme Linux? Pozrite si týchto osem terminálových aplikácií, ktoré vylepšia váš pracovný postup.
Prečítajte si ďalej
- Linux
- Linuxové príkazy
Rumaisa je spisovateľkou na voľnej nohe v MUO. Nosila veľa klobúkov, od matematičky až po nadšenca informačnej bezpečnosti, a teraz pracuje ako analytička SOC. Medzi jej záujmy patrí čítanie a písanie o nových technológiách, distribúciách Linuxu a všetkom okolo informačnej bezpečnosti.
prihlásiť sa ku odberu noviniek
Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné e-knihy a exkluzívne ponuky!
Ak sa chcete prihlásiť na odber, kliknite sem