Jednostavno dodajte brojeve redaka u tekstualnu datoteku pomoću naredbenog retka
Brian pita: “Trebam dodati brojeve redaka u tekstualnu datoteku. Ne mislim na brojeve redaka u uređivaču teksta, mislim na dodavanje broja pored svake stavke unutar tekstualne datoteke. Je li ovo moguće automatizirati ili moram ručno uređivati datoteku upisujući 1, 2, 3 i poludjeti?”
Da, možete jednostavno kodirati brojeve redaka u tekstualnu datoteku... mi ćemo vam pokazati kako to točno učiniti! Da budemo potpuno jasni, ono što će ovo učiniti je dodavanje broja retka za brojanje na lijevu stranu svakog novog retka teksta, stavljajući ispred svakog retka odgovarajući odgovarajući broj.Ovo ga hard kodira u tekstualnu datoteku, što znači da se razlikuje od jednostavnog prikazivanja brojeva redaka u aplikaciji kao što je TextWrangler, VIM ili BBEdit.
Za početak, dođite do terminala i poželjet ćete učiniti sljedeće u retku za naredbe:
Korištenje cat za dodavanje brojeva redaka u tekstualnu datoteku
Ovo je daleko najlakši način: cat -n file > file_new
Jednostavno zamijenite “file” s nazivom datoteke kojoj želite dodati brojeve redaka i promijenite “file_name” u izvezeni naziv.
Također možete koristiti naredbu 'nl' kao što je opisano u nastavku:
Hard Core Line Numbers u tekstualnu datoteku pomoću naredbe nl
Opet zamijenite “filename” i “filenamenunumbered” s odgovarajućim nazivom datoteke kojoj dodajete brojeve redaka:
nl -ba -s ': ' naziv datoteke > naziv datotekebrojčano
To je sve! Možete koristiti oba trika. Nekoliko se čitatelja oglasilo u komentarima kako bi pružilo jednostavnija rješenja za numeriranje redaka unutar tekstualne datoteke. Gore su navedeni prema jednostavnosti, ali u nastavku ćemo ponuditi i 'awk' rješenje.
-
Također možete koristiti alat naredbenog retka 'awk', ali on je malo složeniji od gore spomenutih metoda, ako ste zainteresirani pokrenite Terminal i idemo.
Prvo, obavezno napravite sigurnosnu kopiju svoje tekstualne datoteke u čudnom slučaju da nešto pođe krivo (poput sintaktičke pogreške). Sada kada ste napravili sigurnosnu kopiju dotične tekstualne datoteke, upišimo brojeve redaka izravno u nju:
"awk &39;{printf(%5d : %s\n, NR, $0)}&39; naziv datoteke > nazivdatotekenumbered "
filename je izvorna datoteka, a filenamenumbered je ono što želite nazvati izlazom awk naredbe s brojevima redaka koji su mu pridruženi. Vaš izlazni tekstualni dokument sada će imati broj iza kojeg slijedi dvotočka prije svake stavke retka:
1: redak s riječima 2: redak s riječima 3: redak s riječima
Vaša izvorna tekstualna datoteka trebala bi biti nepromijenjena, ali ako ste napravili pogrešku u sintaksi, sigurnosna kopija koju ste napravili spasit će vam dan. Ova naredba će raditi u bilo kojem Unix OS-u koji ima podršku za awk, pa slobodno pokrenite ovu naredbu u FreeBSD-u, Linuxu, Mac OS X-u ili bilo kojoj drugoj varijanti koje se sjetite.