Linuxoví vývojáři se řídí filozofií vytváření malých programů, které dělají jeden úkol a dělají ho dobře. Vezměte si jako příklad linuxové nástroje pro zpracování textu, jsou lehké a mají modulární funkce. Přestože se tyto nástroje pro manipulaci s textem liší ve složitosti a funkčnosti, přijdou vhod v prostředí, kde není k dispozici grafické uživatelské rozhraní.
Článek se zabývá nejlepšími nástroji Linuxu pro čtení souborů a používání regulárních výrazů k provádění operací s vybraným textem. Pokrývá také jejich nejzákladnější funkce a příklady pro lepší pochopení.
1. grep
grep je linuxový nástroj pro manipulaci s textem, který hledá řetězec znaků nebo vzorů známých jako regulární výrazy v souboru nebo textu. Nástroj grep patří do rodiny nástrojů, které zahrnují egrep, fgrep a grep, mezi nimiž je fgrep nejrychlejší ze všech, zatímco grep je nejjednodušší.
Obecná syntaxe pro použití grep je následující:
grep -options řetězec název_souboru
Chcete-li například vyhledat slovo „root“ v soubor /etc/passwd:
grep root /etc/passwd
Některé standardní příklady příkazového řádku, jak začít, jsou:
Možnosti | Příklad | Popis |
---|---|---|
-C | grep -c |
Spočítejte počet řádků, ve kterých řetězec existuje |
-i | grep -i |
Proveďte vyhledávání zadaného řetězce bez ohledu na velikost písmen |
-Ó | grep -o |
Vytiskne pouze odpovídající řetězec |
-l | grep -l "passwd" | Vytiskne názvy souborů v aktuálním adresáři, které odpovídají vzoru |
-n | grep -n |
Vytiskne číslo řádku podél řádku obsahujícího zadaný řetězec |
řetězec1|řetězec2 | grep soubor "řetězec1|řetězec2". | Najít a vytisknout více řetězců ze souboru |
Podobně můžete použít ^ metaznak pomocí příkazu grep k zobrazení všech odpovídajících řetězců, které začínají určitými znaky.
Například následující příkaz převádí výstup příkazu env jako vstup do grep a zobrazuje proměnné, které začínají "HO":
env | grep ^HO
Příbuzný: Praktické příklady linuxových příkazů Grep
2. awk
awk je výkonný skriptovací jazyk a nástroj pro manipulaci s textem z příkazového řádku, který dokáže skenovat řádek po řádku a porovnávat řádky se vzory. Základní syntaxí příkazu awk je akce definovaná v jednoduchých uvozovkách a složených závorkách následovaných názvem souboru.
awk název souboru '{action}'
awk '{vzor; action}' název souboru
Obslužný program prohledá soubor pomocí regulárních výrazů a provede funkci definovanou v parametru akce. awk spustí skript na každém řádku, pokud nenastavíte vzor, jak je znázorněno níže:
awk '{print $1}' awk_examples.txt
...kde $1 zobrazí první pole awk_examples.txt soubor.
Následující příkaz provede funkci tisku na daném vzoru nahrazením druhého pole "Svět"s"Alice“ a zobrazí celý řádek ($0):
echo "Ahoj světe" | awk '{$2="Alice"; vytisknout $0}'
Výstup:
Ahoj Alice
Podobně můžete použít funkci vytisknout $0 z výše uvedeného příkazu k emulaci grep funkčnost.
awk '/john/{print $0}' /etc/passwd
john: x: 1001:1001::/home/john:/bin/sh
3. třídit
sort je další nástroj příkazového řádku Linuxu, který vám pomáhá zobrazit obsah zadaného textového souboru v seřazeném formátu. Například můžete výstup příkazu awk propojit jako vstup do obslužného programu pro řazení následovně:
awk '{print $1}' awk_examples.txt | řazení > seřadit_text.txt
cat sort_text.txt
Výstup:
Příbuzný: Jak třídit textové soubory v Linuxu pomocí řazení
4. sed
sed nebo stream editor přijímá vstup jako proud znaků a provádí filtrování a transformace textu (odstranění, nahrazení a nahrazení) na zadaném textu.
Můžete jej použít ve skriptu a upravovat soubory neinteraktivně. Nejzákladnějším účelem nástroje je tedy nahrazení řetězce/znaků. Obecná syntaxe je:
sed soubor 's/string/substituce/option'
Vytvořte soubor pomocí náhodných vět, abyste si procvičili a porozuměli fungování tohoto nástroje.
Nahradíme výskyt slova "dva" na každém řádku souboru s "2" za použití -G příznak pro globální nahrazení, a to takto:
sed 's/two/2/g' sed_examples.txt > sed_examples2.txt
Podobně použijte -d příznak pro odstranění konkrétního řádku ze souboru:
sed '2d' sed_examples.txt
Řetězec můžete také nahradit zadáním čísla řádku (4 s/dva/2/s) a vytisknout pouze nahrazený řádek následovně:
sed -n '4 s/dva/2/p' sed_examples2.txt
The -n příznak ve výše uvedeném příkazu zakáže automatický tisk vstupního proudu na výstup. Tuto možnost můžete použít ve svůj prospěch pro nahrazení funkce nástroje grep sed.
Výše uvedený příkaz můžete například upravit tak, že zahrnete pouze vzor regulárního výrazu /two/p takové, že -p flag vytiskne pouze řádky do standardního výstupního proudu.
sed -n '/dva/p' sed_examples2.txt
Příbuzný: Těchto 10 příkladů z vás učiní pokročilého uživatele Linuxu
5. střih
Vyjmout je další nástroj příkazového řádku, který vyjme/extrahuje části textu z řádku nebo souboru. Ořízne text na základě zadaného pole, znaku nebo pozice bajtu a převede výsledek na standardní výstup.
Nástroj má následující syntaxi:
střih soubor
Použijte -b možnost vyjmout sekci nebo obsah pomocí zadaného bajtu nebo rozsahu bajtů:
cut -b 1 cut_examples.txt
Použijte -C příznak pro extrahování textu zadáním pozic znaků:
cut -c 1,3,5 cut_examples.txt
Nakonec můžete také extrahovat text zadáním polí pomocí -F možnost a -d pro oddělovač mezery nebo pole:
cut -d " " -f 1 cut_examples.txt
Zde je seznam rozsahů s příklady a popisy, které můžete s postavou použít -C a byte -b možnosti:
Rozsah | Příklad | Popis |
---|---|---|
n- | cut -c 7- název souboru | Extrahujte znak od n-tého celého čísla do konce řádku |
n-m | cut -b 7-15 název souboru | Extrahuje z celého čísla n-m každého řádku ze vstupního souboru |
-m | cut -c -7 název souboru | Extrahuje řádky začínající od m do konce řádku |
Všimněte si, že nemůžete definovat rozsahy pro extrakci textu pomocí pole -F volba.
Manipulace s textem pomocí příkazů Linux
Linux nabízí mnoho programů a nástrojů pro manipulaci a práci se soubory nebo textem. Naučit se je všechny nemusí být nutné, protože mezeru můžete snadno zaplnit dalším, jakmile jeden dobře uchopíte, jako je použití sed jako grep nebo awk jako grep, ale to nemůže platit pro každý nástroj.
Kromě toho mají příkazy Linuxu strmou křivku učení, ale jakmile si tuto dovednost rozvinete, mohou se ukázat jako velmi užitečné a efektivní v životě každého uživatele Linuxu, zejména správce systému.
Už vás nebaví stará a nudná terminálová aplikace, která je v Linuxu předinstalovaná? Podívejte se na těchto osm terminálových aplikací, které vylepší váš pracovní postup.
Přečtěte si další
- Linux
- Linuxové příkazy

Rumaisa je spisovatelkou na volné noze v MUO. Nosila mnoho klobouků, od matematičky po nadšence pro informační bezpečnost, a nyní pracuje jako analytička SOC. Mezi její zájmy patří čtení a psaní o nových technologiích, linuxových distribucích a všem kolem Information Security.
Přihlaste se k odběru našeho newsletteru
Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné e-knihy a exkluzivní nabídky!
Chcete-li se přihlásit k odběru, klikněte sem