Sådan tælles linjer af en fil ved kommandolinje
Indholdsfortegnelse:
Har du brug for at få linjeantal for en tekstfil eller et dokument? At tælle linjer i enhver fil er let på kommandolinjen, og kommandoen til linjetælling er den samme i alle moderne Unix-baserede operativsystemer, hvilket betyder, at dette linjetælletrick vil fungere på samme måde på Mac OS og Mac OS X, Linux, BSD, og endda Windows med Bash shell.
Til vores formål her vil vi bruge det mest direkte linjetælleværktøj, der er tilgængeligt på kommandolinjen, wc. Wc-værktøjet er i stand til at vise linjeantal, samt afsløre ordantal og tegnantal. Vores fokus her er selvfølgelig på førstnævnte, så vi viser, hvordan man bruger wc til at tælle linjer i en tekstfil, der er angivet som input.
wc definerer en linje som "en streng af tegn afgrænset af et nylinjetegn", hvilket betyder, at kun unikke nye linjer tælles som en linje. Så hvis der ikke er nye linjetegn i en fil, og filen kun er en enorm sætning eller en enkelt kommandostreng, vil den blive rapporteret som én linje.
Sådan tælles linjer af filer fra terminalen med wc
- Åbn et Terminal-vindue, hvis du ikke allerede har gjort det (i Mac OS findes Terminal-applikationen i /Applications/Utilities/)
- Ved kommandoprompten skal du indtaste følgende kommandosyntaks, og erstatte "filnavn" med den fil, du vil tælle linjer for
- Tryk på Retur, du vil se linjetællingen for filen udskrevet før filnavnet
wc -l filnavn
Som du sikkert har gættet, er flaget -l (lille bogstaver L) for "linje".
Kørsel af kommandoen wc -l på en fil på skrivebordet kaldet "exampleFileToCountLines.txt" vil f.eks. se sådan ud:
% wc -l ~/Desktop/exampleFileToCountLines.txt 1213 /Users/Paul/Desktop/exampleFileToCountLines.txt
Som du kan se i dette eksempel, er linjetællingen for den angivne tekstfil 1213, hvilket betyder, at filen er 1.213 linjer lang.
Wc-kommandoen fungerer på samme måde på ethvert moderne Unix-baseret operativsystem, inklusive Mac OS, Linux, FreeBSD, Windows med Bash og mere.
Brug af wc til at tælle linjer, ord og tegnantal i en fil
Du kan også køre wc-kommandoen uden flaget -l, som så vil afsløre linjeantal, ordantal og tegnantal i den rækkefølge. Synes godt om:
wc /etc/hosts 9 32 214 /etc/hosts
Kontrast kommandoen output til den samme kommando med kun wc -l flag:
wc -l /etc/hosts 9 /etc/hosts
Dette tæller kun linjerne i en tekstfil som input, og det ændrer slet ikke filen. Hvis du ønsker at ændre filen, kan du manuelt tilføje linjenumre til en tekstfil via kommandolinjen.
Sådan tælles linjer med piped outputdata med wc
Du kan også bruge wc til at tælle linjer af alle data, der sendes ind i den, for eksempel fra cat eller ls:
cat /etc/hosts | wc -l
Outputtet i det scenarie vil blot være antallet af linjer i filen, f.eks. "9".
Wc-kommandoen er ret pæn, du kan læse manualsiden til wc for at få endnu flere ideer og tricks til brug.
Dette er naturligvis alt sammen gearet til kommandolinjen, men der er også andre måder at få linje- og tegnantal for filer på.
Du kan manuelt tælle dem ud for korte filer, tredjeparts Mac-apps som BBEdit viser linjenummer som standard, og hvis du får den lille fætter til BBEdit kendt som TextWrangler, kan du gå om at vise linjenumre også i TextWrangler. Du kan også lave et DIY Word- og tegntællerværktøj til Mac as a Service. Og hvis du tilfældigvis allerede kender linjenummeret på en fil, du vil have adgang til, kan du hoppe direkte til et bestemt linjenummer i TextEdit, selvom TextEdit desværre ikke viser linjenumre, hvilket virker som en forglemmelse.