Lägg enkelt till radnummer till en textfil med kommandoraden

Brian frågar: "Jag måste lägga till radnummer till en textfil. Jag menar inte radnummer i textredigeraren, jag menar att lägga till ett nummer bredvid varje objekt i en textfil. Är det möjligt att automatisera eller måste jag manuellt redigera filtypen 1, 2, 3 och gå galen? "

Ja, du kan enkelt hardkoda radnummer i en textfil ... vi visar dig exakt hur du gör det! För att vara helt klart, vad det här ska göra är att lägga till ett räkningslinje nummer till vänster om varje ny textrad, som prefixar varje rad med motsvarande motsvarande nummer. Detta hårdkoderar det i textfilen, vilket betyder att det skiljer sig från att bara visa radnummer i en app som TextWrangler, VIM eller BBEdit.

För att komma igång, gå till terminalen och du vill göra följande på kommandoraden:

Använda katt för att lägga till radnummer till en textfil

Det här är överlägset den enklaste metoden:
cat -n file > file_new

Byt bara "fil" med filnamnet du vill lägga till radnummer till och ändra "filnamn" till det exporterade namnet.

Du kan också använda kommandot 'nl' som beskrivs nedan:

Hard Core Line Numbers i en textfil med hjälp av nl Command

Åter ersätt "filnamn" och "filnamnberättat" med namnet på den fil du lägger till radnummer till:

nl -ba -s ': ' filename > filenamenumbered

Det är allt det finns! Du kan använda antingen trick. Flera läsare chimed i kommentarerna för att ge enklare lösningar på numreringslinjer i en textfil. De listades ovan för enkelhet, men vi erbjuder också en "awk" -lösning nedan.

-

Du kan också använda kommandoradsverktyget "awk", men det är lite mer komplicerat än de ovan nämnda metoderna, om du är intresserad startar Terminal och borta går vi.

Först, var noga med att säkerhetskopiera din textfil i den udda händelsen något går fel (som ett syntaxfel). Nu när du har gjort en säkerhetskopia av den aktuella textfilen, låt oss skriva in radnummer direkt i det:

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

filnamn är originalfilen och filnamnberedning är vad du vill ringa utmatningen från awk-kommandot med radnummer kopplade till det. Ditt utgående textdokument kommer nu att ha ett nummer följt av ett kolon före varje rader:

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

Din ursprungliga textfil bör vara oförändrad, men om du gjorde ett syntaxfel än den säkerhetskopieringsfil du lagde sparas din dag. Det här kommandot kommer att fungera i alla Unix-operativsystem som har awk support, så gärna springa det här kommandot i FreeBSD, Linux, Mac OS X eller vilken annan variant du kan tänka dig.