wc(1p)
wc(1p) – Linux manualsida
Prolog
Den här manualsidan är en del av POSIX Programmer's Manual.
Linux-implementationen av detta gränssnitt kan skilja sig åt. Se motsvarande Linux-manualsida för detaljer om Linux-beteende. Gränssnittet kanske inte heller är implementerat på Linux.
Namn
wc – räkna ord, rader och byte eller tecken.
Synopsis
wc [-c|-m] [-lw] [fil...]
Beskrivning
Verktyget wc ska läsa en eller flera indatafiler och som standard skriva antalet radbrytningstecken, ord och byte i varje indatafil till standardutmatning.
Verktyget ska också skriva en total summering för alla namngivna filer om mer än en indatafil anges.
Verktyget wc ska betrakta ett ord som en teckensträng med längd större än noll, avgränsad av blanktecken.
Flaggor
Verktyget wc ska följa POSIX.1-2017, Base Definitions, avsnitt 12.2, Utility Syntax Guidelines.
Följande flaggor ska stödjas:
- -c
- Skriv antalet byte i varje indatafil till standardutmatning.
- -l
- Skriv antalet radbrytningstecken i varje indatafil till standardutmatning.
- -m
- Skriv antalet tecken i varje indatafil till standardutmatning.
- -w
- Skriv antalet ord i varje indatafil till standardutmatning.
När någon flagga anges ska wc endast rapportera den information som begärs av de angivna flaggorna.
Operander
Följande operand ska stödjas:
- fil
- En sökväg till en indatafil.
- Om inga fil-operander anges ska standardinmatning användas.
Standardinmatning
Standardinmatning ska användas om inga fil-operander anges.
Standardinmatning ska också användas om en fil-operand är - och implementationen behandlar - som standardinmatning.
I övriga fall ska standardinmatning inte användas. Se avsnittet Indatafiler.
Indatafiler
Indatafilerna kan vara av vilken typ som helst.
Miljövariabler
Följande miljövariabler ska påverka körningen av wc:
- LANG
- Anger ett standardvärde för internationaliseringsvariabler som är osatta eller tomma.
- Se POSIX.1-2017, Base Definitions, avsnitt 8.2, Internationalization Variables, för företrädesordningen för internationaliseringsvariabler som används för att bestämma värden för lokalkategorier.
- LC_ALL
- Om den är satt till en icke-tom sträng åsidosätter den värdena för alla andra internationaliseringsvariabler.
- LC_CTYPE
- Bestämmer lokalinställningen för tolkning av byteföljder i textdata som tecken, till exempel enkelbyte- jämfört med multibytetecken i argument och indatafiler, samt vilka tecken som definieras som blanktecken.
- LC_MESSAGES
- Bestämmer lokalinställningen som ska användas för att påverka formatet och innehållet i diagnostiska meddelanden som skrivs till standardfel och informativa meddelanden som skrivs till standardutmatning.
- NLSPATH
- Bestämmer platsen för meddelandekataloger vid bearbetning av LC_MESSAGES.
Asynkrona händelser
Standardbeteende.
Standardutmatning
Som standard ska standardutmatningen innehålla en post för varje indatafil i formen:
"%d %d %d %s\n", <radbrytningar>, <ord>, <byte>, <fil>
Om flaggan -m anges ska antalet tecken ersätta fältet byte i detta format.
Om några flaggor anges och flaggan -l inte anges, ska antalet radbrytningstecken inte skrivas.
Om några flaggor anges och flaggan -w inte anges, ska antalet ord inte skrivas.
Om några flaggor anges och varken -c eller -m anges, ska antalet byte eller tecken inte skrivas.
Om inga indataoperander av typen fil anges, ska inget namn skrivas och inga blanktecken före sökvägen skrivas.
Om mer än en indataoperand av typen fil anges, ska en extra rad skrivas i samma format som övriga rader, förutom att ordet total i POSIX-lokalen ska skrivas i stället för en sökväg, och summan av varje kolumn ska skrivas på lämpligt sätt.
Denna extra rad, om den finns, skrivs i slutet av utmatningen.
Standardfel
Standardfel ska endast användas för diagnostiska meddelanden.
Utdatafiler
Inga.
Utökad beskrivning
Ingen.
Avslutningsstatus
Följande avslutningsvärden ska returneras:
- 0
- Lyckad körning.
- >0
- Ett fel inträffade.
Följder av fel
Standardbeteende.
Följande avsnitt är informativa.
Programanvändning
Flaggan -m är inte en växel som modifierar -c, utan en flagga på samma nivå som -c.
För att skapa fullständig standardutmatning med teckenräkning i stället för byte krävs därför kommandot:
wc -mlw
Exempel
Inga.
Bakgrund
Pseudosträngen för utdataformatet med printf() skiljer sig från System V-versionen av wc:
"%7d%7d%7d %s\n"
Det formatet kan ge tvetydiga och svårtolkade resultat för mycket stora filer, eftersom det förutsätter att inget tal överskrider sex siffror.
Vissa historiska implementationer använder endast mellanslag, tabb och radbrytning som ordavgränsare. Motsvarigheten till ISO C-standardens funktion isspace() är mer lämplig.
Flaggan -c står historiskt för ”character count”, alltså teckenräkning, även om den räknar byte. Detta kommer från den ibland felaktiga historiska uppfattningen att byte och tecken har samma storlek.
På grund av internationaliseringskrav lades flaggan -m till för att få faktiska teckenräkningar. Den associeras med ”multi-byte”.
Tidiga förslag specificerade endast resultat när indatafiler var textfiler. Den nuvarande specifikationen följer historisk praxis bättre: byte, ord och radbrytningstecken räknas separat och resultaten skrivs när filslut upptäcks.
Historiska implementationer av wc accepterade endast ett argument för att ange flaggorna -c, -l och -w.
Vissa av dem lät också flera förekomster av en flagga göra att motsvarande räkning skrevs flera gånger, och lät ordningen på flaggorna påverka ordningen på fälten i utmatningen, men detta dokumenterades inte.
Eftersom vanlig användning antingen inte anger några flaggor eller endast en flagga, och eftersom inget av detta var dokumenterat, bör ändringarna som krävs av POSIX.1-2017 inte bryta många historiska program och bryter inte några historiskt överensstämmande program.
Framtida riktning
Ingen.
Se även
- cksum(1p)
- POSIX.1-2017, Base Definitions, kapitel 8, Environment Variables
- POSIX.1-2017, Base Definitions, avsnitt 12.2, Utility Syntax Guidelines
Upphovsrätt
Delar av denna text är återgivna och reproducerade i elektronisk form från:
- IEEE Std 1003.1-2017, Standard for Information Technology -- Portable Operating System Interface (POSIX)
- The Open Group Base Specifications Issue 7, 2018 Edition
Copyright © 2018 Institute of Electrical and Electronics Engineers, Inc. och The Open Group.
Vid avvikelse mellan denna version och den ursprungliga IEEE- och The Open Group-standarden gäller den ursprungliga standarden som referensdokument.
Den ursprungliga standarden kan hämtas online från:
Eventuella typografiska fel eller formateringsfel på denna sida har troligen införts vid konverteringen av källfilerna till man-sideformat.
För att rapportera sådana fel, se: