Hvordan telle linjer av en fil ved kommandolinje

Trenger du å få linjene i en tekstfil eller et dokument? Å telle linjer av hvilken som helst fil er enkel på kommandolinjen, og kommandoen for linjetelling er den samme i alle moderne Unix-baserte operativsystemer, noe som betyr at dette linjetellingtricket vil fungere det samme på Mac OS og Mac OS X, Linux, BSD, og til og med Windows med Bash-skall.

For våre formål her vil vi bruke det mest direkte linjetelleringsverktøyet som er tilgjengelig på kommandolinjen, wc. Wc-verktøyet kan vise linjeantall, samt avsløre ordtall og karaktertelling. Vårt fokus her er selvsagt tidligere, så vi skal vise hvordan vi bruker wc for å telle linjer i hvilken som helst tekstfil som er gitt som input.


wc definerer en linje som "en streng av tegn avgrenset av en ny linje", noe som betyr at bare unike nye linjer regnes som en linje. Så hvis det ikke er noen newline-tegn i en fil, og filen er bare en enorm setning eller en enkelt kommandostreng, vil den bli rapportert som en linje.

Hvordan telle linjer med filer fra terminalen med wc

  1. Åpne et Terminal-vindu hvis du ikke har gjort det allerede (i Mac OS finner du Terminal-applikasjonen i / Programmer / Verktøy /)
  2. Ved kommandoprompten skriver du inn følgende kommandosyntax, erstatter "filnavn" med filen du vil telle linjer for
  3. wc -l filename

  4. Hit Retur, du vil se linjene i filen som er skrevet ut før filnavnet

Som du sannsynligvis gjettet, er -l-flagget (små bokstaver L) for "linje".

For eksempel vil kjør kommandoen wc -l på en fil som ligger på skrivebordet, kalt "exampleFileToCountLines.txt", se ut som følgende:

% wc -l ~/Desktop/exampleFileToCountLines.txt
1213 /Users/Paul/Desktop/exampleFileToCountLines.txt

Som du kan se i dette eksemplet, er linjene i tekstfilen gitt 1213, noe som betyr at filen er 1 1313 linjer lang.

Wc-kommandoen fungerer det samme på alle moderne Unix-baserte operativsystemer, inkludert Mac OS, Linux, FreeBSD, Windows med Bash og mer.

Bruk wc til å telle linjer, ord og karaktertall for en fil

Du kan også kjøre wc-kommandoen uten -l-flagget, som deretter vil vise linjene, ordtellingen og tegntellingen i den rekkefølgen. Som:

wc /etc/hosts
9 32 214 /etc/hosts

Kontrast denne kommandoen til samme kommando med kun wc -l flagg:

wc -l /etc/hosts
9 /etc/hosts

Dette teller bare linjene i en tekstfil som input, og det endrer ikke filen i det hele tatt. Hvis du ønsker å endre filen, kan du manuelt legge til linjenummer til en tekstfil via kommandolinje.

Hvordan telle linjer med piped output data med wc

Du kan også bruke wc til å telle linjer med data som er pipet inn i den, for eksempel fra katt eller ls:

cat /etc/hosts | wc -l

Utgangen i dette scenariet vil ganske enkelt være antall linjer i filen, som "9".

Kommandoen wc er ganske fin, du kan lese den manuelle siden for wc for å få enda flere ideer og triks for bruk.

Dette er åpenbart alle rettet mot kommandolinjen, men det finnes andre måter å få linje- og karaktertall på filer også.

Du kan manuelt telle dem ut for korte filer, tredjeparts Mac-apper som BBEdit vise linjenummer som standard, og hvis du får den lille kusinen til BBEdit kjent som TextWrangler, kan du gå om å vise linjenumre i TextWrangler også. Du kan også lage et DIY Word og tegnet counter verktøy for Mac som en tjeneste. Og hvis du allerede vet linjenummeret til en fil du vil ha tilgang til, kan du hoppe direkte til et bestemt linjenummer i TextEdit, men dessverre viser TextEdit ikke linjenumre, noe som virker som et tilsyn.