Voeg eenvoudig regelnummers toe aan een tekstbestand met de opdrachtregel

Brian vraagt: "Ik moet regelnummers toevoegen aan een tekstbestand. Ik bedoel niet regelnummers in de teksteditor, ik bedoel, het toevoegen van een nummer naast elk item in een tekstbestand. Is dit mogelijk om te automatiseren of moet ik het bestand handmatig 1, 2, 3 typen en gek worden? "

Ja, u kunt eenvoudig regelnummers coderen in een tekstbestand ... we laten u precies zien hoe u het moet doen! Om helemaal duidelijk te zijn, wat dit gaat doen is een tellijnnummer aan de linkerkant van elke nieuwe regel tekst toevoegen, waarbij elke regel voorafgaat met het juiste overeenkomstige nummer. Deze hard codeert het in het tekstbestand, wat inhoudt dat het anders is dan het tonen van regelnummers in een app zoals TextWrangler, VIM of BBEdit.

Om aan de slag te gaan, gaat u naar de Terminal en u wilt het volgende doen bij de prompt van de opdrachtregel:

Kat gebruiken om lijnnummers aan een tekstbestand toe te voegen

Dit is veruit de gemakkelijkste methode:
cat -n file > file_new

Vervang gewoon "bestand" door de bestandsnaam waaraan u regelnummers wilt toevoegen en verander "bestandsnaam" in de geëxporteerde naam.

U kunt ook de opdracht 'nl' gebruiken zoals hieronder wordt beschreven:

Hard Core Line Numbers in een tekstbestand met de opdracht nl

Nogmaals, vervang "filename" en "filenamenumbered" door de toepasselijke naam van het bestand waaraan u regelnummers toevoegt:

nl -ba -s ': ' filename > filenamenumbered

Dat is alles wat er is! Je kunt een trick gebruiken. Verschillende lezers hebben in de commentaren geluisterd om eenvoudiger oplossingen voor nummeringsregels in een tekstbestand te bieden. Ze werden hierboven vermeld in volgorde van eenvoud, maar we bieden hieronder ook een 'awk'-oplossing.

-

Je kunt ook het opdrachtregelhulpprogramma 'awk' gebruiken, maar het is een beetje ingewikkelder dan de hierboven genoemde methoden, als je geïnteresseerd bent, start je de Terminal en gaan we weg.

Maak eerst een back-up van uw tekstbestand in het vreemde geval dat er iets fout gaat (zoals een syntaxisfout). Nu u een back-up van het betreffende tekstbestand hebt gemaakt, laten we regelnummers er rechtstreeks in schrijven:

awk '{printf("%5d : %s\n", NR, $0)}' filename > filenamenumbered

filename is het originele bestand en filenamenumbered is wat je de uitvoer van de awk-opdracht wilt aanroepen met daaraan gekoppelde regelnummers. Uw outputtekstdocument krijgt nu een nummer gevolgd door een dubbele punt vóór elk regelitem:

1: regel met woorden
2: lijn met woorden
3: lijn met woorden

Uw originele tekstbestand moet ongewijzigd blijven, maar als u een syntaxisfout hebt gemaakt, slaat het back-upbestand dat u hebt gemaakt uw dag op. Deze opdracht werkt in alle Unix-besturingssystemen die onhandige ondersteuning hebben, dus voel je vrij om deze opdracht uit te voeren in FreeBSD, Linux, Mac OS X of welke andere variant je maar kunt bedenken.