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:

instagram viewer
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 ./bashrc Spočítejte počet řádků, ve kterých řetězec existuje
-i grep -i ./bashrc Proveďte vyhledávání zadaného řetězce bez ohledu na velikost písmen
grep -o soubor 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 soubor 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.

8 nejlepších terminálových aplikací pro zvýšenou produktivitu Linuxu

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ší

PodíltweetE-mailem
Související témata
  • Linux
  • Linuxové příkazy
O autorovi
Rumaisa Niazi (Zveřejněno 7 článků)

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.

Více od Rumaisa Niazi

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