10 Praktických příkladů příkazu Linux Cut pro výběr sloupců souborů
Pro zpracování textu se používá příkaz Linux cut cut. Tento příkaz můžete použít k extrahování části textu ze souboru výběrem sloupců.
Tento výukový program poskytuje několik praktických příkladů příkazu cut, který můžete použít při každodenních činnostech příkazového řádku.
U většiny příkladu použijeme následující testovací soubor.
$ cat test.txtcat command for file oriented operations.cp command for copy files or directories.ls command to list out files and directories with its attributes.
Vyberte sloupec znaků
Chcete-li ze souboru extrahovat pouze požadovaný sloupec, použijte volbu -c. Následující příklad zobrazuje 2. znak z každého řádku souboru test.txt
$ cut -c2 test.txtaps
Jak je vidět výše, znaky a, p, s jsou druhým znakem z každý řádek souboru test.txt.
Vyberte sloupec znaků pomocí rozsahu
Rozsah znaků lze také extrahovat ze souboru zadáním počáteční a koncové polohy oddělené -. Následující příklad extrahuje první 3 znaky každého řádku ze souboru s názvem test.txt
$ cut -c1-3 test.txtcatcpls
Vyberte sloupec znaků buď pomocí počáteční nebo koncové polohy
Počáteční nebo koncová poloha může být předána příkazu cut pomocí volby -c.
Následující text určuje pouze počáteční pozici před znakem ‚-‚. Tento příklad extrahuje od 3. znaku na konec každého řádku ze souboru test.txt.
$ cut -c3- test.txtt command for file oriented operations. command for copy files or directories. command to list out files and directories with its attributes.
Následující text určuje pouze koncovou pozici za znakem – -. Tento příklad extrahuje 8 znaků od začátku každého řádku ze souboru test.txt.
$ cut -c-8 test.txtcat commcp commals comma
Pokud nezadáte číslo, vytiskne se celý řádek. před nebo za znakem „-“, jak je znázorněno níže.
$ cut -c- test.txtcat command for file oriented operations.cp command for copy files or directories.ls command to list out files and directories with its attributes.
Vyberte konkrétní pole ze souboru
Místo výběru počtu x znaků, pokud chcete extrahovat celé pole, můžete kombinovat volby -f a -d. Volba -f určuje, které pole chcete extrahovat, a volba -d určuje, jaký oddělovač polí se použije ve vstupním souboru.
Následující příklad zobrazuje pouze první pole každého řádku z / soubor etc / passwd pomocí oddělovače polí: (dvojtečka). V tomto případě je první pole uživatelské jméno. Soubor
$ cut -d":" -f1 /etc/passwdrootdaemonbinsyssyncgamesbala
Vyberte více polí ze souboru
Ze souboru nebo stdout můžete také extrahovat více než jedno pole. Níže uvedený příklad zobrazuje uživatelské jméno a domovský adresář uživatelů, kteří mají přihlašovací shell jako „/ bin / bash“.
$ grep "/bin/bash" /etc/passwd | cut -d":" -f1,6root:/rootbala:/home/bala
Chcete-li zobrazit rozsah polí, zadejte počáteční pole a koncové pole, jak je uvedeno níže. V tomto příkladu vybíráme pole 1 až 4, 6 a 7
$ grep "/bin/bash" /etc/passwd | cut -d":" -f1-4,6,7root:x:0:0:/root:/bin/bashbala:x:1000:1000:/home/bala:/bin/bash
Vybrat pole, pouze pokud řádek obsahuje oddělovač
V našem příkladu / etc / passwd, pokud předáte jiný oddělovač než: (dvojtečka), cut zobrazí pouze celý řádek.
V následujícím příkladu Oddělovač jsme zadali jako | (pipe) a příkaz cut jednoduše zobrazí celý řádek, i když nenajde žádný řádek, který má | (pipe) jako oddělovač.
$ grep "/bin/bash" /etc/passwd | cut -d"|" -f1root:x:0:0:root:/root:/bin/bashbala:x:1000:1000:bala,,,:/home/bala:/bin/bash
Ale je možné filtrovat a zobrazit pouze řádky, které obsahují zadaný oddělovač pomocí volby -s.
Následující příklad nezobrazuje žádný výstup, protože příkaz cut nebyl v souboru / etc / passwd nenajdu žádné řádky, které mají | (pipe) jako oddělovač.
$ grep "/bin/bash" /etc/passwd | cut -d"|" -s -f1
Vybrat všechna pole kromě zadaných polí
Chcete-li doplnit seznam výběrových polí, použijte volbu –komplet.
Zobrazí se následující příklad všechna pole ze souboru / etc / passwd kromě pole 7
$ grep "/bin/bash" /etc/passwd | cut -d":" --complement -s -f7root:x:0:0:root:/rootbala:x:1000:1000:bala,,,:/home/bala
Změnit oddělovač výstupu pro zobrazení
Ve výchozím nastavení je oddělovač výstupu stejný jako oddělovač vstupu, který zadáme ve volbě cut -d.
Chcete-li změnit oddělovač výstupu, použijte volbu –výstupní oddělovač, jak je znázorněno níže. V tomto příkladu je oddělovač vstupu: (dvojtečka), ale oddělovač výstupu je # (hash).
$ grep "/bin/bash" /etc/passwd | cut -d":" -s -f1,6,7 --output-delimiter="#"root#/root#/bin/bashbala#/home/bala#/bin/bash
Změnit oddělovač výstupu na nový řádek
V tomto příkladu je každé pole výstupu příkazu řezu zobrazeno na samostatném řádku. Stále jsme používali –output-delimiter, ale hodnota je $ ‚\ n‘, což naznačuje, že bychom měli přidat nový řádek jako oddělovač výstupu.
$ grep bala /etc/passwd | cut -d":" -f1,6,7 --output-delimiter=$"\n"bala/home/bala/bin/bash
Combine Vyjmout s jiným výstupem příkazu Unix
Síla příkazu vyjmout lze realizovat, když jej zkombinujete se standardním výstupem nějakého jiného příkazu Unix.
Jakmile zvládnete základní použití příkazu vyjmout které jsme vysvětlili výše, můžete moudře použít příkaz cut k vyřešení mnoha požadavků na manipulaci s textem.
Následující příklad ukazuje, jak můžete z výstupu příkazu ps získat pouze užitečné informace. Ukázali jsme také, jak jsme filtrovali výstup příkazu ps pomocí grep a sed před tím, než byl vydán finální výstup příkazu cut.Zde jsme použili volbu cut -d a -f, kterou jsme vysvětlili ve výše uvedených příkladech.
Pokud se vám tento článek líbil, mohl by se vám také líbit ..
|
|