GNU/Linux >> Znalost Linux >  >> Linux

Jak zobrazit konkrétní řádky souboru v příkazovém řádku Linuxu

Jak najdu n-tý řádek v souboru v příkazovém řádku systému Linux? Jak zobrazím číslo řádku x na řádku číslo y?

V Linuxu existuje několik způsobů, jak dosáhnout stejného výsledku. Tisk konkrétních řádků ze souboru není výjimkou.

Chcete-li zobrazit 13. řádek, můžete použít kombinaci hlavy a ocasu:

head -13 file_name | tail +13

Nebo můžete použít příkaz sed:

sed -n '13p' file.txt

Chcete-li zobrazit čísla řádků od 20 do 25, můžete zkombinovat příkazy hlavy a ocasu takto:

head -25 file_name | tail +20

Nebo můžete použít příkaz sed takto:

sed -n '20,25p' lines.txt 

Následuje podrobné vysvětlení každého příkazu. Ukážu také použití příkazu awk pro tento účel.

Zobrazení konkrétních čar pomocí příkazů hlavy a ocasu

Toto je můj oblíbený způsob zobrazování vybraných čar. Je pro mě snazší si ji zapamatovat a použít.

Použijte kombinaci příkazů hlava a ocas v následující funkci číslo řádku x:

head -x file_name | tail +x

X můžete nahradit číslem řádku, který chcete zobrazit. Řekněme tedy, že chcete zobrazit 13. řádek souboru.

[email protected]:~$ head -13 lines.txt | tail +13
This is line number 13

Vysvětlení :Pravděpodobně už víte, že příkaz head získává řádky souboru od začátku, zatímco příkaz tail získává řádky od konce.

Část příkazu „head -x“ získá prvních x řádků souborů. Poté tento výstup přesměruje na příkaz tail. Příkaz tail zobrazí všechny řádky začínající od řádku číslo x.

Je zřejmé, že pokud vezmete 13 řádků shora, řádky začínající od čísla 13 do konce budou 13. řádkem. To je logika tohoto příkazu.

Nyní vezmeme naši kombinaci příkazů hlavy a ocasu k zobrazení více než jednoho řádku.

Řekněme, že chcete zobrazit všechny řádky od x do y. To zahrnuje také x-tý a y-tý řádek:

head -y lines.txt | tail +x

Vezměme si praktický příklad. Předpokládejme, že chcete vytisknout všechny řádky od řádku číslo 20 do 25:

[email protected]:~$ head -25 lines.txt | tail +20
This is line number 20
This is line number 21
This is line number 22
This is line number 23
This is line number 24
This is line number 25

Použijte SED k zobrazení konkrétních řádků

Výkonný příkaz sed poskytuje několik způsobů tisku konkrétních řádků.

Chcete-li například zobrazit 10. řádek, můžete použít sed následujícím způsobem:

sed -n '10p' file.txt

-n potlačí výstup, zatímco příkaz p vytiskne konkrétní řádky. Přečtěte si tuto podrobnou příručku SED, abyste se jí naučili a porozuměli jí podrobně.

Chcete-li zobrazit všechny řádky od řádku číslo x do řádku číslo y, použijte toto:

[email protected]:~$ sed -n '3,7p' lines.txt 
This is line number 3
This is line number 4
This is line number 5
This is line number 6
This is line number 7

Použijte AWK k tisku konkrétních řádků ze souboru

Příkaz awk se může zdát komplikovaný a je s tím jistě spojena křivka učení. Ale stejně jako sed je i awk docela výkonný, pokud jde o úpravy a manipulaci s obsahem souborů.

[email protected]:~$ awk 'NR==5' lines.txt 
This is line number 5

NR označuje „číslo aktuálního záznamu“. Přečtěte si prosím naši podrobnou příručku příkazů AWK pro více informací.

Chcete-li zobrazit všechny řádky od x do y, můžete použít příkaz awk následujícím způsobem:

[email protected]:~$ awk 'NR>=20 && NR<=25' lines.txt 
This is line number 20
This is line number 21
This is line number 22
This is line number 23
This is line number 24
This is line number 25

Dodržuje syntaxi, která je podobná většině programovacích jazyků.

Doufám, že vám tento rychlý článek pomohl při zobrazení konkrétních řádků souboru v příkazovém řádku Linuxu. Pokud znáte nějaký jiný trik pro tento účel, podělte se o něj s námi ostatními v sekci komentářů.


Linux
  1. Jak pomocí příkazu Linux „cat“ zobrazit pouze určité řádky podle čísla?

  2. Odstranění konkrétních řádků ze souboru v příkazovém řádku Linuxu

  3. Příkaz wc pro Linux

  1. Jak počítat počet řádků v souboru v Linuxu (příklady wc a nl)

  2. Jak počítat řádky v souboru v UNIX/Linux

  3. Rychlý unixový příkaz pro zobrazení konkrétních řádků uprostřed souboru?

  1. Jak uložit výstup příkazu do souboru v Linuxu

  2. Jak extrahovat soubor tar.gz v Linuxu pomocí příkazového řádku

  3. Jak nahradit soubor v jar příkazovým řádkem v linuxu?