Přemýšleli jste někdy, jak přidat čísla řádků do standardního výstupu textových souborů? Tento stručný průvodce vysvětluje, jak můžete do daného textového souboru přidat čísla řádků. Existuje několik způsobů, jak přidat čísla řádků do souboru. Zde jsem pokryl 6 různých metod, jak to udělat. Pokud v budoucnu na nějaké narazím, budu přidávat další metody. Raději si tuto příručku uložte do záložek a vraťte se později, abyste zjistili, zda jsou nějaké doplňky.
Metoda 1 – Použití příkazu 'nl'
Příkaz "nl" je určen pro přidávání čísel řádků do souboru. Zapíše daný soubor na standardní výstup s přidanými čísly řádků. Mám soubor s názvem soubor.txt s následujícím obsahem.
$ cat file.txt This is line1 This is line2 This is line3 This is line5 This is line8
Jak vidíte na výše uvedeném výstupu, soubor má 8 řádků a tři prázdné řádky. Přidejme čísla řádků.
Chcete-li to provést, spusťte:
$ nl file.txt 1 This is line1 2 This is line2 3 This is line3 4 This is line5 5 This is line8
Příkaz nl nebere v úvahu prázdné řádky. Čísla doplní pouze na neprázdné řádky. Pokud chcete očíslovat všechny řádky včetně prázdných řádků, použijte -b příznak jako níže.
$ nl -b a file.txt 1 This is line1 2 This is line2 3 This is line3 4 5 This is line5 6 7 8 This is line8
Za čísla můžete také přidat symbol/speciální znaky. Chcete-li například přidat tečku (.) za čísla, spusťte:
$ nl -s "." file.txt 1.This is line1 2.This is line2 3.This is line3 4.This is line5 5.This is line8
Možná budete chtít zarovnat šířku výstupu. Chcete-li to provést, použijte příznak -w, jak je uvedeno níže.
$ nl -w2 file.txt
Metoda 2 – Použití příkazu 'cat'
Příkaz cat se používá k zobrazení obsahu souboru. Pokud chcete do výstupu souboru přidat čísla, použijte parametr -n jako níže.
$ cat -n file.txt 1 This is line1 2 This is line2 3 This is line3 4 5 This is line5 6 7 8 This is line8
Případně můžete standardní výstup předat do nového souboru, jak je uvedeno níže.
$ cat -n file.txt > newfile.txt
Můžete se také chtít zbavit opakovaných prázdných řádků.
$ cat -s -n file.txt 1 This is line1 2 This is line2 3 This is line3 4 5 This is line5 6 7 This is line8
Metoda 3 – Použití příkazu 'awk'
Chcete-li přidat čísla řádků do výstupu souboru pomocí příkazu awk, spusťte:
$ awk 'BEGIN{i=1} /.*/{printf "%d.% s\n",i,$0; i++}' file.txt 1.This is line1 2.This is line2 3.This is line3 4. 5.This is line5 6. 7. 8.This is line8
Jak jste si mohli všimnout, startovní číslo jsem přiřadil jako 1 v parametru BEGIN. Můžete přiřadit jakékoli jiné startovní číslo dle vašeho výběru, například 5, jak je uvedeno níže.
$ awk 'BEGIN{i=5} /.*/{printf "%d.% s\n",i,$0; i++}' file.txt 5.This is line1 6.This is line2 7.This is line3 8. 9.This is line5 10. 11. 12.This is line8
Pokud nechcete brát v úvahu prázdné řádky, použijte následující příkaz:
$ awk 'BEGIN{i=0} {if($0 !~ /^$/) {printf ("%d.%s \n",i,$0); i++} else { print $0} } ' file.txt
Pokud si myslíte, že výše uvedené příkazy jsou trochu obtížně zapamatovatelné, použijte místo toho následující příkaz.
$ awk '{ print FNR " " $0 }' file.txt 1 This is line1 2 This is line2 3 This is line3 4 5 This is line5 6 7 8 This is line8
Pokud chcete zvětšit mezeru mezi čísly a textem, spusťte:
$ awk '{ print FNR "\t " $0 }' file.txt
Metoda 4 – Použití příkazu 'sed'
Chcete-li přidat čísla řádků do standardního výstupu souboru pomocí příkazu sed, spusťte:
$ sed '/./=' file.txt | sed '/./N; s/\n/ /' 1 This is line1 2 This is line2 3 This is line3 5 This is line5 8 This is line8
Příkaz sed má skvělou funkci, která se mi líbí nejvíce. Můžeme zobrazit N řádek ze souboru. Chcete-li například zobrazit 3. řádek v souboru, spusťte:
$ sed -n 3p file.txt This is line3
Metoda 5 – Použití příkazu 'méně'
Chcete-li číslo řádku na standardní výstup souboru pomocí příkazu less, spusťte:
$ less -N file.txt 1 This is line1 2 This is line2 3 This is line3 4 5 This is line5 6 7 8 This is line8
Metoda 6 – Použití příkazu 'grep'
příkaz grep lze použít k vyhledání řádku, který obsahuje konkrétní řádek. Pokud chcete přidat čísla řádků do řádku, který má konkrétní písmeno, například řádek , spustit:
$ grep -n "line" file.txt 1:This is line1 2:This is line2 3:This is line3 5:This is line5 8:This is line8
Upozorňujeme, že tento příkaz přidá čísla pouze do řádků, které obsahují hledaný řetězec. Vše ostatní v daném souboru bude vynecháno.
A to je vše. Další podrobnosti o výše uvedených příkazech naleznete v manuálových stránkách. Nyní znáte různé metody přidávání čísel řádků do textových souborů. Doufám, že vám to bude užitečné. Přijdou další dobré věci. Zůstaňte naladěni!
Na zdraví!