sed(1p)
Version från den 10 januari 2026 kl. 07.11 av Admin (diskussion | bidrag) (Skapade sidan med 'Jag gör om HTML-innehållet du klistrade in till MediaWiki-format, med samma stil som dina tidigare man-sida-översättningar: `==`-rubriker, `<pre>` för kodblock, och interna länkar i “SE ÄVEN”. == PROLOG == <pre> Den här manualsidan är en del av POSIX Programmer's Manual. Linux- implementationen av detta gränssnitt kan skilja sig (konsultera motsvarande Linux-manualsida för detaljer om Linux-beteende), eller så kan gränssnittet saknas i Linux. </pre>...')
Jag gör om HTML-innehållet du klistrade in till MediaWiki-format, med samma stil som dina tidigare man-sida-översättningar: `==`-rubriker, `
` för kodblock, och interna länkar i “SE ÄVEN”. == PROLOG == <pre> Den här manualsidan är en del av POSIX Programmer's Manual. Linux- implementationen av detta gränssnitt kan skilja sig (konsultera motsvarande Linux-manualsida för detaljer om Linux-beteende), eller så kan gränssnittet saknas i Linux.
NAMN
sed — strömredigerare
SYNOPSIS
sed [-n] script [file...] sed [-n] -e script [-e script]... [-f script_file]... [file...] sed [-n] [-e script]... -f script_file [-f script_file]... [file...]
BESKRIVNING
Verktyget sed är en strömredigerare som läser en eller flera textfiler, gör redigeringsändringar enligt ett skript av redigeringskommandon, och skriver resultatet till standardutmatning. Skriptet hämtas antingen från operandsträngen script eller från en kombination av option-argumenten för alternativen -e script och -f script_file.
ALTERNATIV
Verktyget sed ska följa Base Definitions-volymen i POSIX.1-2017,
Avsnitt 12.2, Utility Syntax Guidelines, med undantag att ordningen
mellan alternativen -e och -f är signifikant.
Följande alternativ ska stödjas:
-e script
Lägg till de redigeringskommandon som anges av option-argumentet
script till slutet av skriptet med redigeringskommandon.
-f script_file
Lägg till de redigeringskommandon som finns i filen script_file
till slutet av skriptet med redigeringskommandon.
-n
Undertryck standardutmatningen (där varje rad, efter att den
granskats för redigering, skrivs till standardutmatning).
Endast rader som explicit väljs för utmatning skrivs.
Om några -e- eller -f-alternativ anges ska skriptet med redigeringskommandon
initialt vara tomt. Kommandona som anges av varje -e- eller -f-alternativ
ska läggas till skriptet i den ordning de anges. När varje tillägg görs
ska, om föregående tillägg (om något) kom från ett -e-alternativ, ett
<newline> infogas före det nya tillägget. Det resulterande skriptet ska ha
samma egenskaper som operanden script, beskriven i avsnittet OPERANDER.
OPERANDER
Följande operander ska stödjas:
file
En sökväg till en fil vars innehåll läses och redigeras.
Om flera file-operander anges ska de namngivna filerna läsas i den
ordning som anges och sammanfogningen ska redigeras. Om inga
file-operander anges ska standard in användas.
script
En sträng som ska användas som skriptet med redigeringskommandon.
Applikationen ska inte presentera ett script som bryter mot
begränsningarna för en textfil, med undantag att sista tecknet
inte behöver vara ett <newline>.
STDIN
Standard in ska användas om inga file-operander anges, och ska användas om en file-operand är '-' och implementationen behandlar '-' som att det betyder standard in. Annars ska standard in inte användas. Se avsnittet INPUT FILES.
INPUT FILES
Indatafilerna ska vara textfiler. script_file:erna som namnges av alternativet -f ska bestå av redigeringskommandon.
MILJÖVARIABLER
Följande miljövariabler ska påverka körningen av sed:
LANG
Tillhandahåll ett standardvärde för internationaliseringsvariabler
som är odefinierade eller tomma. (Se Base Definitions-volymen i
POSIX.1-2017, Avsnitt 8.2, Internationalization Variables för
prioritet mellan internationaliseringsvariabler som används för att
bestämma värden för locale-kategorier.)
LC_ALL
Om satt till en icke-tom sträng, åsidosätt värdena för alla andra
internationaliseringsvariabler.
LC_COLLATE
Bestäm locale för beteendet hos intervall, ekvivalensklasser och
flerteckens kollationselement inom reguljära uttryck.
LC_CTYPE
Bestäm locale för tolkning av sekvenser av byte av textdata som
tecken (t.ex. enkelbyte kontra multibyte-tecken i argument och
indatafiler), och beteendet hos teckenklasser inom reguljära
uttryck.
LC_MESSAGES
Bestäm locale som ska användas för att påverka format och innehåll i
diagnostiska meddelanden som skrivs till standard error.
NLSPATH
Bestäm platsen för meddelandekataloger för bearbetning av LC_MESSAGES.
ASYNKRONA HÄNDELSER
Standard.
STDOUT
Indatafilerna ska skrivas till standardutmatning, med redigeringskommandona i skriptet tillämpade. Om alternativet -n anges ska endast de indatarader som väljs av skriptet skrivas till standardutmatning.
STDERR
Standard error ska endast användas för diagnostik- och varningsmeddelanden.
OUTPUT FILES
Utdatafilerna ska vara textfiler vars format beror på de redigeringskommandon som ges.
UTVIDGAD BESKRIVNING
script ska bestå av redigeringskommandon av följande form:
[address[,address]]function
där function representerar ett enstaka kommandotecken från listan i
Editing Commands in sed, följt av eventuella tillämpliga argument.
Kommandot kan föregås av <blank>-tecken och/eller <semicolon>-tecken.
Function kan föregås av <blank>-tecken. Dessa valfria tecken ska inte ha
någon effekt.
Vid standarddrift ska sed cykliskt lägga till en indatarad, utan dess
avslutande <newline>-tecken, i mönsterutrymmet (pattern space). Läsning från
indata ska hoppas över om ett <newline> fanns i mönsterutrymmet före ett D-
kommando som avslutade föregående cykel. sed ska därefter i ordning tillämpa
alla kommandon vars adresser väljer det mönsterutrymmet, tills ett kommando
startar nästa cykel eller avslutar. Om inga kommandon explicit startade en
ny cykel ska, vid slutet av skriptet, mönsterutrymmet kopieras till
standardutmatning (utom när -n anges) och mönsterutrymmet ska raderas.
Närhelst mönsterutrymmet skrivs till standardutmatning eller en namngiven fil
ska sed omedelbart följa det med ett <newline>.
Vissa redigeringskommandon använder ett hållutrymme (hold space) för att
spara hela eller delar av mönsterutrymmet för senare hämtning. Mönster- och
hållutrymme ska vart och ett kunna hålla minst 8192 byte.
Addresses in sed
En adress är antingen ett decimaltal som räknar indatarader kumulativt
över filer, ett '$'-tecken som adresserar sista indataraden, eller en
kontextadress (som består av ett BRE, enligt Regular Expressions in sed,
föregånget och följt av en avgränsare, vanligtvis <slash>).
Ett redigeringskommando utan adresser ska välja varje mönsterutrymme.
Ett redigeringskommando med en adress ska välja varje mönsterutrymme som
matchar adressen.
Ett redigeringskommando med två adresser ska välja det inkluderande
intervallet från det första mönsterutrymmet som matchar första adressen
till och med nästa mönsterutrymme som matchar den andra adressen. (Om den
andra adressen är ett tal mindre än eller lika med det först valda
radnumret ska endast en rad väljas.) Från och med första raden efter det
valda intervallet ska sed återigen söka efter första adressen. Därefter
upprepas processen. Att utelämna en eller båda adressdelarna i följande
form ger odefinierade resultat:
[address[,address]]
Regular Expressions in sed
sed ska stödja de BRE:er som beskrivs i Base Definitions-volymen i
POSIX.1-2017, Avsnitt 9.3, Basic Regular Expressions, med följande
tillägg:
* I en kontextadress ska konstruktionen "\cBREc", där c är ett tecken
annat än <backslash> eller <newline>, vara identisk med "/BRE/".
Om tecknet c förekommer efter ett <backslash> ska det betraktas som
det literal-tecknet och ska inte avsluta BRE:t. Exempel: i
kontextadressen "\xabc\xdefx" står det andra x för sig själv, så BRE:t
är "abcxdef".
* Escape-sekvensen '\n' ska matcha ett <newline> inbäddat i
mönsterutrymmet. Ett literal <newline> ska inte användas i BRE:t för
en kontextadress eller i substitueringsfunktionen.
* Om ett RE är tomt (dvs. inget mönster anges) ska sed bete sig som om
det sista RE som användes i det senast tillämpade kommandot (antingen
som adress eller som del av ett substitueringskommando) var angivet.
Editing Commands in sed
I följande lista av redigeringskommandon anges maximalt antal tillåtna
adresser för varje function med [0addr], [1addr] eller [2addr].
Argumentet text ska bestå av en eller flera rader. Varje inbäddat
<newline> i text ska föregås av ett <backslash>. Andra <backslash>-tecken
i text ska tas bort och efterföljande tecken ska behandlas bokstavligt.
Kommandotecknen r och w, samt w-flaggan till s-kommandot, tar en rfile
(eller wfile)-parameter, separerad från kommandotecknet eller flaggan av
ett eller flera <blank>-tecken; implementationer kan tillåta noll
separation som en utökning.
Argumentet rfile eller wfile ska avsluta redigeringskommandot. Varje
wfile ska skapas innan bearbetning börjar. Implementationer ska stödja
minst tio wfile-argument i skriptet; det faktiska antalet (>= 10) är
ospecificerat. Parametern wfile ska göra att filen initialt skapas om
den inte finns, eller ersätta innehållet i en befintlig fil.
Kommandotecknen b, r, s, t, w, y och : ska acceptera ytterligare
argument. Följande synopser anger vilka argument som ska separeras från
kommandotecknen med ett enkelt <space>.
Kommandona a och r schemalägger text för senare utmatning. Texten som
anges för a-kommandot, och innehållet i filen som anges för r-kommandot,
ska skrivas till standardutmatning precis före nästa försök att hämta en
indatarad när N- eller n-kommandona körs, eller när slutet av skriptet
nås. Om det skrivs när slutet av skriptet nås och -n-alternativet inte
angavs ska texten skrivas efter att mönsterutrymmet kopierats till
standardutmatning. Innehållet i filen som anges för r-kommandot ska vara
som vid tidpunkten då utmatningen skrivs, inte när r-kommandot tillämpas.
Texten ska matas ut i den ordning som a- och r-kommandona tillämpades på
indatat.
Redigeringskommandon andra än {...}, a, b, c, i, r, t, w, :, och # kan
följas av ett <semicolon>, valfria <blank>-tecken, och ett annat
redigeringskommando. Men när ett s-redigeringskommando används med w-
flaggan ger det odefinierade resultat att följa det med ett annat
kommando på detta sätt.
En function kan föregås av ett '!' i vilket fall funktionen ska tillämpas
om adresserna inte väljer mönsterutrymmet. Noll eller fler <blank>-tecken
accepteras före '!' . Det är ospecificerat om <blank>-tecken kan följa
efter '!' och konforma applikationer ska inte följa '!' med <blank>.
Om ett label-argument (till b, t eller : ) innehåller tecken utanför den
portabla filnamnsteckenmängden, eller om label är längre än 8 byte, är
beteendet ospecificerat. Implementationer ska stödja label-argument som
känns igen som unika upp till minst 8 byte; den faktiska längden (>= 8)
är ospecificerad. Det är ospecificerat om överskridande av maximal
label-längd orsakar fel eller tyst trunkering.
[2addr] {
editing command
editing command
...
}
Kör en lista av sed-redigeringskommandon endast när mönsterutrymmet
är valt. Listan omges av klamrar. Klamrarna kan föregås eller följas
av <blank>. <right-brace> ska föregås av <newline> eller <semicolon>
(före eventuella valfria <blank> som föregår <right-brace>).
Varje kommando i listan ska avslutas av <newline> eller av ett
<semicolon> om det är tillåtet när kommandot används utanför
klamrarna. Kommandon kan föregås av <blank>, men ska inte följas av
<blank>.
[1addr]a\
text
Skriv text till standardutmatning som beskrivits ovan.
[2addr]b [label]
Hoppa (branch) till : kommandotecknet med label-argumentet. Om label
inte anges, hoppa till slutet av skriptet.
[2addr]c\
text
Radera mönsterutrymmet. Med 0 eller 1 adress eller vid slutet av ett
2-adressintervall: skriv text till utmatningen och starta nästa cykel.
[2addr]d
Radera mönsterutrymmet och starta nästa cykel.
[2addr]D
Om mönsterutrymmet inte innehåller något <newline>, radera
mönsterutrymmet och starta en normal ny cykel som om d körts. Annars:
radera det initiala segmentet genom första <newline>, och starta nästa
cykel med återstående mönsterutrymme utan att läsa ny indata.
[2addr]g
Ersätt innehållet i mönsterutrymmet med innehållet i hållutrymmet.
[2addr]G
Lägg till i mönsterutrymmet ett <newline> följt av innehållet i
hållutrymmet.
[2addr]h
Ersätt innehållet i hållutrymmet med innehållet i mönsterutrymmet.
[2addr]H
Lägg till i hållutrymmet ett <newline> följt av innehållet i
mönsterutrymmet.
[1addr]i\
text
Skriv text till standardutmatning.
[2addr]l
(Bokstaven l.) Skriv mönsterutrymmet till standardutmatning i en
visuellt entydig form. Tecknen listade i Base Definitions-volymen i
POSIX.1-2017, Tabell 5-1, Escape Sequences and Associated Actions
('\\', '\a', '\b', '\f', '\r', '\t', '\v') ska skrivas som motsvarande
escape-sekvens; '\n' i tabellen är inte tillämplig. Icke-utskrivbara
tecken som inte finns i tabellen ska skrivas som ett tresiffrigt
oktaltal (med föregående <backslash>) för varje byte i tecknet (mest
signifikanta byte först).
Långa rader ska vikas, med vikpunkten markerad genom att skriva ett
<backslash> följt av ett <newline>; längden där vikning sker är
ospecificerad, men bör vara lämplig för utdataenheten. Slutet av varje
rad ska markeras med ett '$'.
[2addr]n
Skriv mönsterutrymmet till standardutmatning om standardutmatning inte
undertryckts, och ersätt mönsterutrymmet med nästa indatarad, utan
dess avslutande <newline>.
Om ingen nästa indatarad finns ska n hoppa till slutet av skriptet och
avsluta utan att starta en ny cykel.
[2addr]N
Lägg till nästa indatarad, utan dess avslutande <newline>, till
mönsterutrymmet, med ett inbäddat <newline> som separator mellan den
tillagda delen och den ursprungliga. Observera att aktuellt radnummer
ändras.
Om ingen nästa indatarad finns ska N hoppa till slutet av skriptet och
avsluta utan att starta en ny cykel eller kopiera mönsterutrymmet till
standardutmatning.
[2addr]p
Skriv mönsterutrymmet till standardutmatning.
[2addr]P
Skriv mönsterutrymmet upp till första <newline> till standardutmatning.
[1addr]q
Hoppa till slutet av skriptet och avsluta utan att starta en ny cykel.
[1addr]r rfile
Kopiera innehållet i rfile till standardutmatning som beskrivits ovan.
Om rfile inte finns eller inte kan läsas ska det behandlas som en tom
fil utan fel.
[2addr]s/BRE/replacement/flags
Ersätt replacement-strängen för instanser av BRE i mönsterutrymmet.
Valfritt tecken (utom <backslash> eller <newline>) kan användas i
stället för <slash> som avgränsare. Inuti BRE och replacement kan
avgränsaren användas bokstavligt om den föregås av <backslash>.
Replacement skannas från början till slut. Ett '&' i replacement
ersätts av strängen som matchar BRE. Den specialbetydelsen kan
undertryckas med föregående <backslash>. Tecknen "\n", där n är en
siffra, ersätts av texten matchad av motsvarande bakreferens. Om
bakreferensen inte matchar ersätts "\n" med tom sträng. Den
specialbetydelsen kan undertryckas med föregående <backslash>. För
varje annat <backslash> förlorar följande tecken sin specialbetydelse
(om någon).
En rad kan delas genom att substituera in ett <newline>. Applikationen
ska escapa <newline> i replacement genom att föregå det med ett
<backslash>.
Betydelsen av ett oescapat <backslash> direkt följt av ett tecken som
inte är '&', <backslash>, en siffra, <newline>, eller avgränsaren för
kommandot, är ospecificerad.
En substitution anses utförd även om replacement är identisk med det
som ersätts. Varje <backslash> som ändrar defaultbetydelsen av ett
efterföljande tecken ska kastas från BRE eller replacement innan BRE
evalueras eller replacement används.
flags består av noll eller fler av:
n
Substituera endast för den n:te förekomsten av BRE i
mönsterutrymmet.
g
Global substitution för alla icke-överlappande instanser av
BRE i stället för bara den första. Om både g och n anges är
resultatet ospecificerat.
p
Skriv mönsterutrymmet till standardutmatning om en ersättning
gjordes.
w wfile
Skriv (append) mönsterutrymmet till wfile om en ersättning
gjordes. Applikationen ska föregå wfile med ett eller fler
<blank>-tecken. Om w-flaggan inte är den sista i en
sammanfogning av flera flaggor är resultatet odefinierat.
[2addr]t [label]
Test. Hoppa till : kommandotecknet med label om några substitutioner
har gjorts sedan senaste läsning av indatarad eller körning av t. Om
label inte anges, hoppa till slutet av skriptet.
[2addr]w wfile
Lägg till (write) mönsterutrymmet till wfile.
[2addr]x
Byt innehållet mellan mönster- och hållutrymme.
[2addr]y/string1/string2/
Ersätt alla förekomster av tecken i string1 med motsvarande tecken i
string2. Om en <backslash> följd av 'n' förekommer i string1 eller
string2 ska de två tecknen behandlas som ett enda <newline>. Om antalet
tecken i string1 och string2 inte är lika, eller om något tecken i
string1 förekommer mer än en gång, är resultatet odefinierat. Valfritt
tecken (utom <backslash> eller <newline>) kan användas som avgränsare.
Om avgränsaren inte är 'n' kan den användas bokstavligt i string1 och
string2 om den föregås av <backslash>. Om en <backslash> direkt följs
av en <backslash> i string1 eller string2 ska de räknas som ett enda
literal <backslash>. Betydelsen av <backslash> följt av tecken som
inte är 'n', <backslash> eller avgränsaren är odefinierad.
[0addr]:label
Gör ingenting. Detta kommando bär en label som b och t kan hoppa till.
[1addr]=
Skriv följande till standardutmatning:
"%d\n", <aktuellt radnummer>
[0addr]
Ignorera detta tomma kommando.
[0addr]#
Ignorera '#' och resten av raden (behandla som kommentar), med det
enda undantaget att om de två första tecknen i skriptet är "#n" ska
standardutmatningen undertryckas; detta är ekvivalent med -n på
kommandoraden.
SLUTSTATUS
Följande slutvärden ska returneras:
0
Lyckad körning.
>0
Ett fel inträffade.
KONSEKVENSER AV FEL
Standard. Följande avsnitt är informativa.
ANVÄNDNING
Reguljära uttryck matchar hela strängar, inte bara enskilda rader, men ett <newline> matchas av '\n' i ett sed-RE; ett <newline> är inte tillåtet i den allmänna definitionen av reguljära uttryck i POSIX.1-2008. Notera också att '\n' inte kan användas för att matcha ett <newline> i slutet av en godtycklig indatarad; <newline>-tecken förekommer i mönsterutrymmet som ett resultat av redigeringskommandot N. När sed används för att bearbeta sökvägar rekommenderas att LC_ALL, eller åt minstone LC_CTYPE och LC_COLLATE, sätts till POSIX eller C i miljön, eftersom sökvägar kan innehålla bytsekvenser som inte bildar giltiga tecken i vissa locales; i så fall blir verktygets beteende odefinierat. I POSIX-locale är varje byte ett giltigt enkelbyte-tecken och problemet undviks därmed.
EXEMPEL
Detta sed-skript simulerar BSD cat -s-kommandot genom att ”klämma ihop”
överskjutande tomrader från standard in.
sed -n '
# Skriv icke-tomma rader.
/./ {
p
d
}
# Skriv en enda tom rad, leta sedan efter fler tomrader.
/^$/ p
# Hämta nästa rad, kasta det hållna <newline> (tom rad),
# och leta efter fler tomrader.
:Empty
/^$/ {
N
s/.//
b Empty
}
# Skriv den icke-tomma raden innan vi går tillbaka och söker
# efter den första i en uppsättning tomrader.
p
'
Följande sed-kommando är en mycket enklare metod för att klämma ihop tomrader,
även om det inte är exakt samma som cat -s eftersom det tar bort eventuella
inledande tomrader:
sed -n '/./,/^$/p'
MOTIVERING
Denna volym av POSIX.1-2017 kräver att implementationer stödjer minst tio
distinkta wfile:er, i linje med historisk praxis på många implementationer.
Implementationer uppmuntras att stödja fler, men konforma applikationer bör
inte överskrida denna gräns.
Slutstatuskoderna här skiljer sig från System V. System V returnerar 2 för
”garbled” sed-kommandon, men returnerar noll med sin användningshjälp eller om
indatafilen inte kunde öppnas. Standardutvecklarna ansåg detta vara en bugg.
Sättet som l-kommandot skriver icke-utskrivbara tecken ändrades för att undvika
den historiska backspace-overstrike-metoden, och andra krav för entydig
utmatning lades till. Se RATIONALE för ed(1p) för detaljer om valt format, som
är samma som valt för sed.
Denna volym av POSIX.1-2017 kräver mönster- och hållutrymmen om minst 8192 byte,
större än 4000 byte som vissa historiska implementationer använde, men mindre
än 20480 byte i ett tidigt förslag. Implementationer uppmuntras att dynamiskt
allokera större utrymmen vid behov.
Kraven på acceptans av <blank> och <space> i kommandorader har gjorts mer
explicit än i tidiga förslag för att tydligt beskriva historisk praxis och
undanröja förvirring kring frasen ”protect initial blanks [sic] and tabs from
the stripping that is done on every script line” som förekommer i mycket
historisk dokumentation om sed:s textbeskrivning. (Inte alla implementationer
är kända för att ha strippat <blank> från textrader, även om de alla tillåtit
inledande <blank> före adressen på en kommandorad.)
Behandlingen av '#'-kommentarer skiljer sig från SVID som endast tillåter en
kommentar som första raden i skriptet, men matchar BSD-deriverade
implementationer. Kommentar-tecknet behandlas som ett kommando och har samma
egenskaper vad gäller acceptans med inledande <blank>; BSD har historiskt
stött detta.
Tidiga förslag krävde att en script_file hade minst en icke-kommentarrad. Vissa
historiska implementationer har betett sig oväntat om så inte var fallet.
Standardutvecklarna ansåg detta vara felaktigt och att applikationsutvecklare
inte ska behöva undvika funktionen. En korrekt implementation av denna volym av
POSIX.1-2017 ska tillåta script_file:er som endast består av kommentarrader.
Tidiga förslag angav att om -e och -f blandades skulle alla -e behandlas före
alla -f. Detta har ändrats till att processa dem i den ordning de presenteras,
eftersom det matchar historisk praxis och är mer intuitivt.
Behandlingen av p-flaggan till s-kommandot skiljer sig mellan System V och
BSD-baserade system när standardutmatningen undertrycks. I följande två
exempel:
echo a | sed 's/a/A/p'
echo a | sed -n 's/a/A/p'
anger POSIX.1-2017, BSD, System V-dokumentation och SVID att första exemplet
ska skriva två rader med A, medan det andra ska skriva en. Vissa System V-
system skriver A endast en gång i båda exemplen eftersom p-flaggan ignoreras om
-n inte anges.
Detta är en diametral skillnad mellan system som inte kunde förenas genom
kompromissen att deklarera beteendet ospecificerat. SVID/BSD/System V-
beteendet antogs för POSIX.1-2017 eftersom:
* Ingen känd dokumentation för historiska system beskriver interaktionen
mellan p-flaggan och -n.
* Det valda beteendet är mer korrekt eftersom det inte finns någon teknisk
motivering för interaktion mellan p och -n. En relation skulle kunna
antyda att de bara används tillsammans, men detta ignorerar giltiga skript
som bryter den cykliska behandlingen via D, d, q eller branch-kommandon.
Sådana skript förlitar sig på p-suffixet för att skriva mönsterutrymmet
eftersom de inte använder standardutmatningen vid ”botten” av skriptet.
* Eftersom -n gör p-flaggan onödig skulle en interaktion endast vara nyttig
om sed-skript var skrivna för att köras både med och utan -n. Detta anses
osannolikt. Än mer osannolikt är att programmerare har kod som förväntar
sig att p-flaggan skulle vara onödig. Då interaktionen inte var
dokumenterad minskar sannolikheten att någon upptäckt den och beroende av
den ytterligare.
* Slutligen ger skript som fallerar under det specificerade beteendet för
mycket utdata i stället för för lite, vilket är lättare att felsöka och
rätta.
Formen av substitueringskommandot som använder n-suffixet begränsades till de
första 512 matchningarna i ett tidigt förslag. Denna gräns har tagits bort
eftersom det inte finns skäl att en editor som bearbetar rader av {LINE_MAX}
ska ha begränsningen. Kommandot s/a/A/2047 ska kunna ersätta den 2047:e
förekomsten av a på en rad.
b-, t- och :-kommandona dokumenteras som att de ignorerar inledande blanksteg,
men inget sägs om avslutande blanksteg. Historiska sed-implementationer har
tilldelat olika platser till etiketterna 'x' och "x ". Detta är inte nyttigt
och leder till subtila programmeringsfel, men är historisk praxis, och
ändringar kan teoretiskt bryta fungerande skript. Implementatörer uppmuntras
att ge varningar om etiketter som aldrig refereras av b eller t, hopp till
etiketter som inte finns, och etikettargument som kan trunkeras.
Tidigare versioner av standarden tillät implementationer med byte som inte var
åtta bitar, men detta har ändrats i denna version.
FRAMTIDA INRIKTNING
Ingen.
SE ÄVEN
[[awk(1p)]], [[ed(1p)]], [[grep(1p)]] Base Definitions-volymen i POSIX.1-2017, Tabell 5-1, Escape Sequences and Associated Actions, Kapitel 8, Environment Variables, Avsnitt 9.3, Basic Regular Expressions, Avsnitt 12.2, Utility Syntax Guidelines
UPPHOVSRÄTT
Delar av denna text är omtryckta och återgivna 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 (C) 2018 av Institute of Electrical and Electronics Engineers, Inc och The Open Group. Vid eventuell avvikelse mellan denna version och den ursprungliga IEEE- och The Open Group-standarden är den ursprungliga standarden skiljedomande dokument. Originalstandarden kan erhållas online på http://www.opengroup.org/unix/online.html . Eventuella typografiska eller formateringsfel som förekommer i denna sida har troligen introducerats vid konverteringen av källfilerna till man-sidesformat. För att rapportera sådana fel, se https://www.kernel.org/doc/man-pages/reporting_bugs.html
REFERENSER TILL DENNA SIDA
awk(1p), csplit(1p), dd(1p), ed(1p), ex(1p), grep(1p), head(1p), od(1p), tr(1p)