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 bewerken door 1, 2, 3 te typen en gek te worden?”
Ja, je kunt regelnummers gemakkelijk hardcoderen in een tekstbestand... we laten je precies zien hoe je dat moet doen! Voor alle duidelijkheid, wat dit gaat doen is een telregelnummer toevoegen aan de linkerkant van elke nieuwe regel tekst, waarbij elke regel wordt voorafgegaan door het juiste corresponderende nummer.Dit codeert het hard in het tekstbestand, wat betekent dat het anders is dan het simpelweg weergeven van regelnummers in een app zoals TextWrangler, VIM of BBEdit.
Om aan de slag te gaan, gaat u naar de Terminal en wilt u het volgende doen bij de opdrachtregelprompt:
Cat gebruiken om regelnummers toe te voegen aan een tekstbestand
Dit is verreweg de makkelijkste 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 het commando 'nl' gebruiken zoals hierna beschreven:
Hard Core regelnummers in een tekstbestand met behulp van de nl-opdracht
Nogmaals, vervang "bestandsnaam" en "bestandsnaamgenummerd" door de juiste naam van het bestand waaraan u regelnummers toevoegt:
nl -ba -s ': ' bestandsnaam > bestandsnaamgenummerd
Dat is alles! Je kunt beide trucs gebruiken. Verschillende lezers stemden in met de opmerkingen om eenvoudigere oplossingen te bieden voor het nummeren van regels in een tekstbestand. Ze zijn hierboven vermeld in volgorde van eenvoud, maar hieronder bieden we ook een 'onhandige' oplossing.
-
U kunt ook het opdrachtregelprogramma 'awk' gebruiken, maar het is iets ingewikkelder dan de hierboven genoemde methoden. Als u geïnteresseerd bent, start u de Terminal en gaan we.
Zorg er eerst voor dat u een back-up van uw tekstbestand maakt voor het zeldzame geval dat er iets misgaat (zoals een syntaxisfout). Nu je een back-up hebt gemaakt van het betreffende tekstbestand, gaan we regelnummers er rechtstreeks in schrijven:
"awk &39;{printf(%5d : %s\n, NR, $0)}&39; bestandsnaam > bestandsnaamgenummerd "
bestandsnaam is het originele bestand, en bestandsnaamgenummerd is hoe je de uitvoer van het awk-commando wilt noemen met daaraan gekoppelde regelnummers. Uw uitvoertekstdocument heeft nu een nummer gevolgd door een dubbele punt voor elk regelitem:
1: regel met woorden 2: regel met woorden 3: regel met woorden
Uw oorspronkelijke tekstbestand zou ongewijzigd moeten blijven, maar als u een syntaxisfout heeft gemaakt, zal het back-upbestand dat u hebt gemaakt uw dag redden. Deze opdracht werkt in elk Unix-besturingssysteem dat awk-ondersteuning heeft, dus voel je vrij om deze opdracht uit te voeren in FreeBSD, Linux, Mac OS X of welke andere variant je maar kunt bedenken.