17.21. Numerowanie wierszy

Problem

Chcemy ponumerować wiersze tekstu, aby można było łatwiej się do nich odnosić.

Rozwiązanie

Dziękujemy Michaelowi Wangowi za wkład w opracowanie rozwiązania bazującego tylko i wyłącznie na mechanizmach powłoki oraz z przypomnienie nam o istnieniu opcji –n w poleceniu cat. Ostatni wiersz w pliku dane jest wierszem pustym.

$ i=0; while IFS= read -r line; do (( i++ )); echo "$i $line"; done < dane
1 Wiersz 1
2 Wiersz 2
3
4 Wiersz 4
5 Wiersz 5
6

To samo zadanie realizuje polecenie cat:

$ cat -n dane
     1  Wiersz 1
     2  Wiersz 2
     3
     4  Wiersz 4
     5  Wiersz 5
     6

$ cat -b dane
     1  Wiersz 1
     2  Wiersz 2

     3  Wiersz 4
     4  Wiersz 5

Analiza

Aby dołączyć numery wierszy jedynie podczas wyświetlania zestawienia na ekranie, można również użyć polecenia

Get Bash. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.