Legg enkelt linjenumre til en tekstfil med kommandolinjen

Brian spør: "Jeg må legge til linjenumre i en tekstfil. Jeg mener ikke linjenumre i tekstredigeringen, jeg mener å legge til et tall ved siden av hvert element i en tekstfil. Er det mulig å automatisere eller må jeg manuelt redigere filtypene 1, 2, 3 og gå galt? "

Ja, du kan enkelt skrive inn linjenummer i en tekstfil ... vi viser deg nøyaktig hvordan du gjør det! For å være helt klart, hva dette skal gjøre, er å legge til et telle linjenummer til venstre for hver ny tekstlinje, og prefikser hver linje med riktig tilsvarende nummer. Dette koder det hardt i tekstfilen, noe som betyr at det er annerledes enn å bare vise linjenumre i en app som TextWrangler, VIM eller BBEdit.

For å komme i gang, kom til Terminal, og du vil gjøre følgende på kommandolinjeprompt:

Bruke katt til å legge til linjenummer til en tekstfil

Dette er uten tvil den enkleste metoden:
cat -n file > file_new

Bare erstatt "fil" med filnavnet du vil legge til linjenumre til, og endre "filnavn" til det eksporterte navnet.

Du kan også bruke kommandoen 'nl' som beskrevet nedenfor:

Hard Core Line Numbers i en tekstfil ved hjelp av nl Command

Igjen, erstatt "filnavn" og "filnavnummer" med riktig navn på filen du legger til linjenumre til:

nl -ba -s ': ' filename > filenamenumbered

Det er alt der er til det! Du kan bruke enten triks. Flere lesere chimed i kommentarene for å gi enklere løsninger på nummerering linjer i en tekstfil. De ble oppført ovenfor for enkelhets skyld, men vi tilbyr også en "awk" -løsning nedenfor.

-

Du kan også bruke kommandolinjeverktøyet 'awk', men det er litt mer komplekst enn metodene nevnt ovenfor, hvis du er interessert i å starte Terminal og vekk vi går.

Først må du være sikker på å sikkerhetskopiere tekstfilen din i den merkelige hendelsen, noe som går galt (som en syntaksfeil). Nå som du har laget en sikkerhetskopi av den aktuelle tekstfilen, la oss skrive linjene direkte inn i den:

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

filnavn er den opprinnelige filen, og filnavnummer er hva du vil ringe utgangen av awk-kommandoen med linjenumre som er knyttet til den. Ditt utgående tekstdokument vil nå ha et nummer etterfulgt av et kolon før hvert ordrelinje:

1: linje med ord
2: linje med ord
3: linje med ord

Den opprinnelige tekstfilen din bør være uendret, men hvis du lagde en syntaksfeil enn den sikkerhetskopieringsfilen du lagde, lagrer du dagen. Denne kommandoen vil fungere i alle Unix-operativsystemer som har awk støtte, så vær så snill å kjøre denne kommandoen i FreeBSD, Linux, Mac OS X, eller hva som helst annen variant du kan tenke på.