Nemt tilføj linjenumre til en tekstfil med kommandolinjen

Brian spørger: "Jeg skal tilføje linjenumre til en tekstfil. Jeg mener ikke linjenumre i teksteditoren, jeg mener at tilføje et nummer ved siden af ​​hvert element inde i en tekstfil. Er det muligt at automatisere eller skal jeg manuelt redigere filtypen 1, 2, 3 og gå sindssyg? "

Ja, du kan nemt kode kode numre i en tekstfil ... vi viser dig præcis, hvordan du gør det! For at være helt klart, hvad dette vil gøre, er at tilføje et tællerlinjenummer til venstre for hver nye tekstlinje, der præfikserer hver linje med det tilsvarende tilsvarende nummer. Dette hard koder det i tekstfilen, hvilket betyder, at det er anderledes end blot at vise linjenumre i en app som TextWrangler, VIM eller BBEdit.

For at komme i gang skal du komme til Terminal, og du vil gøre følgende på kommandolinjeprompten:

Brug af kat til at tilføje linjenumre til en tekstfil

Dette er langt den nemmeste metode:
cat -n file > file_new

Du skal blot erstatte "fil" med det filnavn, du vil tilføje linjenumre til, og ændre "filnavn" til det eksporterede navn.

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

Hard Core Line Numbers i en tekstfil ved hjælp af nl Command

Igen skal du erstatte "filnavn" og "filnavnummer" med det relevante navn på filen, du tilføjer linjenumre til:

nl -ba -s ': ' filename > filenamenumbered

Det er alt der er til det! Du kan bruge enten et trick. Flere læsere chimede i kommentarerne for at give lettere løsninger på nummerering linjer i en tekstfil. De blev nævnt ovenfor med enkelhed, men vi tilbyder også en "awk" -løsning nedenfor.

-

Du kan også bruge kommandolinjeværktøjet 'awk', men det er lidt mere komplekst end de ovennævnte metoder, hvis du er interesseret i at starte Terminal og væk, går vi.

Vær sikker på at sikkerhedskopiere din tekstfil i den ulige begivenhed, noget går galt (som en syntaksfejl). Nu hvor du har lavet en sikkerhedskopi af den pågældende tekstfil, lad os skrive linjenumre direkte ind i den:

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

Filnavnet er den oprindelige fil, og filenamenumbered er, hvad du vil kalde output fra awk-kommandoen med linjenumre, der er vedhæftet den. Dit outputtekstdokument vil nu have et nummer efterfulgt af et kolon inden hver linjepost:

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

Din originale tekstfil skal være uændret, men hvis du lavede en syntaksfejl, end den sikkerhedskopieringsfil, du lavede, gemmer du din dag. Denne kommando vil fungere i ethvert Unix-operativsystem, der har awk support, så følg fri for at køre denne kommando i FreeBSD, Linux, Mac OS X eller den anden variant du kan tænke på.