Sed: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
(Omdirigerar till sed(1p))
Märke: Ny omdirigering
 
Rad 1: Rad 1:
''SED'' (1P) POSIX programmeringsmanual                ''SED'' (1P)
#REDIRECT [[sed(1p)]]
 
==== PROLOG ====
        Den här manualsidan är en del av POSIX-programmerarens manual. De
        Linux-implementeringen av det här gränssnittet kan skilja sig åt (konsultera
        motsvarande Linux-manualsida för detaljer om Linux-beteende),
        eller så kanske gränssnittet inte är implementerat på Linux.
 
==== NAME ====
        sed — strömredigerare
 
==== SYNOPSIS ====
        sed '''[''' -n ''']''' ''script''  '''[''' ''fil'' ... ''']'''
        sed '''[''' -n ''']''' -e ''script''  '''[''' -e ''script'' ''']''' ... '''[''' -f ''script_file'' ''']''' ... '''[''' ''fil'' ... ''']'''
        sed '''[''' -n '''] [''' -e ''script'' ''']''' ... -f ''script_file''  '''[''' -f ''script_file'' ''']''' ... '''[''' ''fil'' ... ''']'''
 
==== BESKRIVNING ====
        Sed ''-'' verktyget är en strömredigerare som ska läsa en eller flera
        textfiler, gör redigeringsändringar enligt ett redigeringsskript
        kommandon och skriv resultaten till standardutdata. Manuset
        ska hämtas från antingen ''skriptoperandsträngen'' eller en
        kombination av alternativ-argumenten från '''-e''' ''script'' och '''-f'''
        ''script_file'' alternativ.
 
==== ALTERNATIV ====
        Sed ''-'' verktyget ska överensstämma med Base Definitions-volymen för
        POSIX.1‐2017, ''avsnitt 12.2'' , ''Riktlinjer för verktygssyntax'' , utom
        att ordningen för presentationen av alternativen '''-e''' och '''-f''' är
        signifikant.
        Följande alternativ ska stödjas:
        '''-e''' ''script'' Lägg till de redigeringskommandon som anges av ''skriptet''
                  option-argument till slutet av redigeringsskriptet
                  kommandon.
        '''-f''' ''script_file''
                  Lägg till redigeringskommandona i filen ''script_file'' till
                  slutet av skriptet för redigeringskommandon.
        '''-n'''        Undertryck standardutgången (där varje rad, efter
                  den granskas för redigering, är skriven till standard
                  produktion). Endast rader som är explicit valda för utdata är
                  skriven.
        Om några '''-e''' eller '''-f''' alternativ är specificerade, skriptet för redigering
        kommandon ska initialt vara tomma. De kommandon som anges av var och en
        '''Alternativet -e''' eller '''-f''' ska läggas till skriptet i ordningen
        specificerad. När varje tillägg görs, om föregående tillägg
        (om någon) kom från ett '''-e-''' alternativ, en <nylinje> ska infogas
        innan det nya tillskottet. Det resulterande skriptet ska ha samma
        egenskaper som ''skriptoperanden'' , som beskrivs i OPERANDS
        sektion.
 
==== OPERANDS ====
        Följande operander ska stödjas:
        ''fil''      Ett sökvägsnamn för en fil vars innehåll läses och
                  redigerade. Om flera ''filoperander'' anges,
                  namngivna filer ska läsas i angiven ordning och
                  sammanlänkningen ska redigeras. Om ingen ''filoperander''
                  är specificerade ska standardingången användas.
        ''script''    En sträng som ska användas som skript för redigeringskommandon.
                  Ansökan ska inte presentera ett ''manus'' som
                  bryter mot begränsningarna för en textfil förutom det
                  det sista tecknet behöver inte vara en <nyrad>.
 
==== STDIN ====
        Standardinmatningen ska användas om det inte finns några ''filoperander''
        specificeras och ska användas om en ''filoperand'' är '''<nowiki/>'-'''' och
        implementeringen behandlar '''"-"''' som en standardinmatning.
        I annat fall ska standardingången inte användas. Se INPUT
        sektionen FILER.
 
==== INPUT FILES ====
        Indatafilerna ska vara textfiler. Skript_filen är namngiven ''av''
        alternativet '''-f''' ska bestå av redigeringskommandon.
 
==== MILJÖVARIABLER ====
        Följande miljövariabler ska påverka exekveringen av
        ''sed'' :
        ''LANG''      Ange ett standardvärde för internationaliseringen
                  variabler som är inställda eller null. (Se basen
                  Definitionsvolym för POSIX.1‐2017, ''avsnitt 8.2 ,'' Internationaliseringsvariabler
                  ''för'' företräde för
                  internationaliseringsvariabler som används för att bestämma
                  värden för språkkategorier.)
        ''LC_ALL''    Om inställt på ett icke-tomt strängvärde, åsidosätt värdena
                  av alla andra internationaliseringsvariabler.
        ''LC_COLLATE''
                  Bestäm lokalen för beteendet för intervall,
                  ekvivalensklasser och sammanställning av flera tecken
                  element i reguljära uttryck.
        ''LC_CTYPE''  Bestäm lokalen för tolkningen av
                  sekvenser av byte med textdata som tecken (till
                  till exempel en-byte i motsats till multi-byte
                  tecken i argument och indatafiler), och
                  karaktärsklassers beteende inom vanliga
                  uttryck.
        ''LC_MESSAGES''
                  Bestäm lokalen som ska användas för att påverka
                  format och innehåll i diagnostiska meddelanden som skrivits till
                  standard fel.
        ''NLSPATH''    Bestäm platsen för meddelandekataloger för
                  bearbetning av ''LC_MESSAGES'' .
 
==== ASYNKRONA HÄNDELSER ====
        Standard.
 
==== STDOUT ====
        Indatafilerna ska skrivas till standardutdata, med
        redigeringskommandon som anges i det tillämpade skriptet. Om '''då'''
        alternativet anges, endast de inmatningsrader som valts av
        skriptet ska skrivas till standardutdata.
 
==== STDERR ====
        Standardfelet ska endast användas för diagnostik och varning
        meddelanden.
 
==== OUTPUT FILES ====
        Utdatafilerna ska vara textfiler vars format är beroende
        på de angivna redigeringskommandona.
 
== Utökad BESKRIVNING ==
        Skriptet ska bestå av redigeringskommandon av ''följande''
        form:
            '''[''' ''adress'' '''[''' , ''adress'' ''']]''' ''funktion''
        där ''funktion'' representerar ett kommandoverb från en enda tecken
        listan i ''redigeringskommandon i sed'' följt av eventuella tillämpliga
        argument.
        Kommandot kan föregås av <blank> tecken och/eller
        <semikolon> tecken. Funktionen kan föregås av <blank>
        tecken. Dessa valfria tecken ska inte ha någon effekt.
        I standarddrift ska ''sed'' cykliskt lägga till en rad med
        in, minus dess avslutande <nylinje>-tecken, i mönstret
        Plats. Läsning från indata ska hoppas över om en <nylinje> var inne
        mönsterutrymmet före ett '''D''' -kommando som avslutar föregående cykel.
        Sed- ''verktyget'' ska sedan tillämpa alla kommandon vars
        adresser väljer det mönsterutrymmet tills ett kommando startar
        nästa cykel eller slutar. Om inga kommandon uttryckligen startade en ny
        cycle, sedan i slutet av skriptet ska mönsterutrymmet vara
        kopieras till standardutdata (förutom när '''-n''' anges) och
        mönsterutrymme ska tas bort. Närhelst mönsterutrymmet är
        skrivs till standardutdata eller en namngiven fil, ''sed'' ska omedelbart
        följ den med en <nylinje>.
        Vissa av redigeringskommandona använder ett hållutrymme för att spara hela eller delar
        av mönsterutrymmet för efterföljande hämtning. Mönstret och
        hållutrymmen ska vart och ett kunna rymma minst 8192 byte.
    '''Adresser i sed'''
        En adress är antingen ett decimaltal som räknar inmatningsrader
        kumulativt över filer, ett '''<nowiki/>'$'''' -tecken som adresserar
        sista inmatningsraden, eller en kontextadress (som består av en
        BRE, som beskrivs i ''Regular Expressions in sed'' , föregick och
        följt av en avgränsare, vanligtvis ett <snedstreck>).
        Ett redigeringskommando utan adresser ska välja varje mönster
        Plats.
        Ett redigeringskommando med en adress ska välja varje mönster
        utrymme som matchar adressen.
        Ett redigeringskommando med två adresser ska välja inkluderande
        intervall från det första mönsterutrymmet som matchar den första adressen
        genom nästa mönsterutrymme som matchar det andra. (Om
        andra adressen är ett nummer mindre än eller lika med radnumret
        först väljs, endast en rad ska väljas.) Med början vid
        första raden efter det valda intervallet ska ''sed'' leta efter igen
        den första adressen. Därefter ska processen upprepas.
        Utelämna ena eller båda av adresskomponenterna i
        följande formulär ger odefinierade resultat:
            '''[''' ''adress'' '''[''' , ''adress'' ''']]'''
    '''Reguljära uttryck i sed.'''
        Sed- ''verktyget'' ska stödja de BRE som beskrivs i basen
        Definitionsvolym för POSIX.1‐2017, ''avsnitt 9.3'' , ''Grundläggande reguljära''
        ''uttryck'' , med följande tillägg:
        * I en kontextadress, konstruktionen '''"\cBREc"''' , där ''c'' är
            alla andra tecken än <backslash> eller <newline>, ska vara
            identisk med '''"/BRE/"''' . Om karaktären som anges av ''c''
            visas efter ett <omvänt snedstreck>, så ska det beaktas
            att vara den bokstavliga karaktären, som inte ska avsluta
            BRE. Till exempel, i kontextadressen '''"\xabc\xdefx"''' , den
            andra ''x'' står för sig själv, så att BRE är '''"abcxdef"''' .
        * Escape-sekvensen '''<nowiki/>'\n'<nowiki/>''' ska matcha en <newline> inbäddad i
            mönsterutrymmet. En bokstavlig <nylinje> ska inte användas i
            BRE för en kontextadress eller i ersättningsfunktionen.
        * Om en RE är tom (det vill säga inget mönster anges) ''sed''
            ska bete sig som om den senaste RE som användes i det sista kommandot
            tillämpas (antingen som en adress eller som en del av ett substitut
            kommando) specificerades.
    '''Redigera kommandon i sed'''
        I följande lista med redigeringskommandon är det maximala antalet
        tillåtna adresser för varje funktion indikeras med [ ''0addr'' ],
        [ ''1addr'' ] eller [ ''2addr'' ], representerar noll, en eller två adresser.
        Argumenttexten ska bestå av en eller flera rader ''.'' Varje
        inbäddad <nylinje> i texten ska föregås av en
        <omvänt snedstreck>. Andra <backslash>-tecken i text ska vara
        tas bort, och följande tecken ska behandlas bokstavligt.
Kommandoverben r och w, och
        w - '''flaggan till''' ''kommandot'' s ''',''' ta
        en ''rfile'' (eller ''wfile'' ) parameter, separerad från kommandoverbet
        bokstav eller flagga med ett eller flera <blanka> tecken; implementeringar
        kan tillåta nollseparation som en förlängning.
        Argumentet ''rfile'' eller argumentet ''wfile'' ska avsluta
        redigeringskommando. Varje ''w-fil'' ska skapas före bearbetning
        börjar. Implementeringarna ska stödja minst tio ''w-filer''
        argument i manuset; det faktiska antalet (större än eller lika
        till 10) som stöds av implementeringen är ospecificerad.
        Användningen av parametern ''wfile'' ska göra att filen blir det
        ursprungligen skapat, om det inte finns, eller ska ersätta
        innehållet i en befintlig fil.
Kommandoverben
        b , '''r , s''' , '''t''' , '''w''' , '''y''' och ''':''' ska acceptera ytterligare
        argument. Följande sammanfattningar anger vilka argument som ska
        separeras från kommandoverben med ett enda <mellanslag>.
        Kommandona a och '''r''' schemalägger text för senare utdata '''.''' Texten
        specificerat för kommandot '''a''' och innehållet i filen
        som anges för kommandot '''r''' , ska skrivas till standardutgång
        strax före nästa försök att hämta en rad inmatning när
        exekvera '''N''' eller '''n''' kommandon, eller när slutet av
        manus. Om skrivet när man når slutet av manuset, och
        '''-n''' alternativ specificerades inte, texten ska skrivas efter
        kopiera mönsterrymden till standardutdata. Innehållet i
        fil som anges för kommandot '''r''' ska vara från och med den tidpunkt då
        output skrivs, inte tiden då '''r''' -kommandot tillämpas. De
        text ska matas ut i den ordning som '''a''' och '''r''' kommandona
        applicerades på ingången.
        Andra redigeringskommandon än '''{...}''' , '''a''' , '''b''' , '''c''' , '''i''' , '''r''' , '''t''' , '''w''' , ''':''' , och '''#'''
        kan följas av ett <semikolon>, valfria <blanka> tecken,
        och ett annat redigeringskommando. Men när '''ett''' redigeringskommando
        används med ''w-'' flaggan, efter den med ett annat kommando i
        detta sätt ger odefinierade resultat.
        En funktion kan föregås av ett '''<nowiki/>'!''''  karaktär, i vilket fall
        funktionen ska tillämpas om adresserna inte väljer
        mönsterutrymme. Noll eller fler <blank> tecken accepteras
        Innan '''<nowiki/>'!'<nowiki/>'''  karaktär. Det är ospecificerat om <blank>
        tecken kan följa '''"!"'''  karaktär och överensstämmande
        ansökningar ska inte följa '''"!"'''  tecken med <tom>
        tecken.
        Om ett ''etikettargument'' (till ett '''b''' , '''t''' , eller ''':''' kommando) innehåller tecken
        utanför den bärbara filnamnsteckenuppsättningen, eller om en ''etikett'' är
        längre än 8 byte är beteendet ospecificerat. De
        implementeringen ska stödja ''etikettargument'' som erkänns som unika
        upp till minst 8 byte; den faktiska längden (större än eller lika
        till 8) som stöds av implementeringen är ospecificerad. Det är
        ospecificerat om den maximala etikettlängden som stöds överskrids
        orsakar ett fel eller en tyst trunkering.
        '''[''' ''2addr'' '''] {''' ''redigeringskommando''
        ''redigeringskommando''
        ...
        '''}'''          Kör en lista med ''sed-'' redigeringskommandon endast när
                  mönsterutrymme är valt. Listan över ''sed-'' redigering
                  kommandon ska omges av hängslen. Hängslen kan
                  föregås eller följs av <blank> tecken. De
                  <högerklammer> ska föregås av en <nylinje> eller
                  <semikolon> (före eventuella <blanka> tecken
                  före <högerklammer>).
                  Varje kommando i listan över kommandon ska vara
                  avslutas med ett <nylinje>-tecken, eller av en
                  <semikolon> tecken om tillåtet när kommandot är
                  används utanför hängslen. Redigeringskommandona kan vara
                  föregås av <blanka> tecken, men ska inte vara det
                  följt av <blank> tecken.
        '''[''' ''1addr'' ''']a\'''
        ''text''      Skriv text till standardutdata som beskrivits tidigare.
        '''[''' ''2addr'' ''']b [''' ''label'' ''']'''
                  Förgrena sig till kommandot ''':''' verb som bär ''etikettargumentet''
                  . Om ''etiketten'' inte anges, förgrena sig till slutet
                  av manuset.
        '''[''' ''2addr'' ''']c\'''
        ''text''      Ta bort mönsterutrymmet. Med en 0 eller 1 adress eller på
                  i slutet av ett intervall med 2 adresser, placera ''text'' på utgången
                  och starta nästa cykel.
        '''[''' ''2addr'' ''']d'''  Ta bort mönsterutrymmet och starta nästa cykel.
        '''[''' ''2addr'' ''']D'''  Om mönsterrymden inte innehåller någon <nylinje>, ta bort
                  mönsterutrymme och starta en normal ny cykel som om '''d'''
                  kommando utfärdades. Annars tar du bort initialen
                  segment av mönsterrymden genom den första
                  <nylinje> och starta nästa cykel med resultatet
                  mönsterutrymme och utan att läsa någon ny inmatning.
        '''[''' ''2addr'' ''']g'''  Byt ut innehållet i mönsterutrymmet med
                  innehållet i lastutrymmet.
        '''[''' ''2addr'' ''']G'''  Lägg till en <nylinje> till mönsterrymden följt av
                  innehållet i lastutrymmet.
        '''[''' ''2addr'' ''']h'''  Byt ut innehållet i hållutrymmet med
                  innehållet i mönsterutrymmet.
        '''[''' ''2addr'' ''']H'''  Lägg till en <nylinje> till hållutrymmet följt av
                  innehållet i mönsterutrymmet.
        '''[''' ''1addr'' ''']i\'''
        ''text''      Skriv ''text'' till standardutdata.
        '''[''' ''2addr'' ''']l'''  (Bokstaven ell.) Skriv mönsterrymden till standard
                  produktion i en visuellt entydig form. Tecknen
                  listade i volymen Base Definitions av POSIX.1‐2017,
                  ''Tabell 5-1'' , ''Escape-sekvenser och associerade åtgärder''
                  ( '''<nowiki/>'\\'<nowiki/>''' , '''<nowiki/>'\a'<nowiki/>''' , '''<nowiki/>'\b'<nowiki/>''' , '''<nowiki/>'\f'<nowiki/>''' , '''<nowiki/>'\r'<nowiki/>''' , '''<nowiki/>'\t'''' , '''<nowiki/>'\v')''' ska vara
                  skriven som motsvarande flyktsekvens; " '''\n"'''
                  i den tabellen är inte tillämplig. Ej utskrivbar
                  tecken som inte finns i den tabellen ska skrivas som ett
                  tresiffrigt oktalt nummer (med ett föregående <omvänt snedstreck>)
                  för varje byte i tecknet (mest signifikanta byte
                  först).
                  Långa linor ska vikas med vikpunkten
                  indikeras genom att skriva ett <omvänt snedstreck> följt av ett
                  <nylinje>; längden vid vilken vikning sker är
                  ospecificerad, men bör vara lämplig för utdata
                  enhet. Slutet på varje rad ska markeras med a
                  '''<nowiki/>'$'''' .
        '''[''' ''2addr'' ''']n'''  Skriv mönsterrymden till standardutdata om
                  standardutgången har inte undertryckts, och ersätt
                  mönsterutrymme med nästa inmatningsrad, minus dess
                  avslutar <nylinje>.
                  Om ingen nästa rad med inmatning är tillgänglig, kommandot '''n'''
                  verb ska förgrena sig till slutet av skriptet och avsluta
                  utan att starta en ny cykel.
        '''[''' ''2addr'' ''']N'''  Lägg till nästa rad med inmatning, minus dess avslutning
                  <nylinje>, till mönsterrymden, med hjälp av en inbäddad
                  <newline> för att separera det bifogade materialet från
                  originalmaterial. Observera att det aktuella radnumret
                  ändringar.
                  Om ingen nästa rad med inmatning är tillgänglig, kommandot '''N'''
                  verb ska förgrena sig till slutet av skriptet och avsluta
                  utan att starta en ny cykel eller kopiera mönstret
                  utrymme till standardutgång.
        '''[''' ''2addr'' ''']p'''  Skriv mönsterrymden till standardutdata.
        '''[''' ''2addr'' ''']P'''  Skriv mönsterrymden, upp till den första <nyraden>, till
                  standardutgång.
        '''[''' ''1addr'' ''']q'''  Förgrena sig till slutet av skriptet och avsluta utan
                  starta en ny cykel.
        '''[''' ''1addr'' ''']r''' ''rfil''
                  Kopiera innehållet i ''rfil'' till standardutdata som
                  beskrivits tidigare. Om ''rfile'' inte finns eller inte kan
                  läsas, ska den behandlas som om den vore en tom
                  fil, vilket inte orsakar något feltillstånd.
        '''[''' ''2addr'' ''']s/''' ''BRE'' '''/''' ''ersättning'' '''/''' ''flaggor''
                  Ersätt ersättningssträngen med instanser av
                  BRE i mönsterrymden. Vilken karaktär som helst förutom
                  <backslash> eller <newline> kan användas istället för a
                  <slash> för att avgränsa BRE och ersättning. Inom
                  BRE och ersättning, själva BRE-avgränsaren
                  kan användas som ett bokstavligt tecken om det föregås av
                  ett <omvänt snedstreck>.
                  Ersättningssträngen ska skannas från början
                  att sluta. En <ampersand> ( '''<nowiki/>'&'<nowiki/>''' ) som visas i
                  ersättning ska ersättas av strängmatchning
                  BRE. Den speciella betydelsen av '''<nowiki/>'&'''' i detta sammanhang kan
                  undertryckas genom att föregå den av ett <omvänt snedstreck>. De
                  tecknen "\ ''n"'' , där ''n'' är en siffra, ska ersättas
                  av texten som matchas av motsvarande bakåtreferens
                  uttryck. Om motsvarande bakåtreferens
                  uttrycket matchar inte, då tecknen "\ ''n"''
                  ska ersättas av den tomma strängen. Den speciella
                  betydelsen av "\ ''n"'' där ''n'' är en siffra i detta sammanhang, kan
                  undertryckas genom att föregå den av ett <omvänt snedstreck>. För
                  varandra <backslash> stött på, följande
                  karaktär ska förlora sin speciella betydelse (om någon).
                  En rad kan delas upp genom att ersätta en <nylinje> i
                  Det. Ansökan ska undvika <newline> i
                  ersätt genom att föregå den av ett <omvänt snedstreck>.
                  Innebörden av en oescaped <backslash> omedelbart
                  följt av något annat tecken än '''<nowiki/>'&'<nowiki/>''' , <backslash>,
                  en siffra, <nylinje> eller avgränsningstecknet som används för
                  detta kommando är ospecificerat.
                  En substitution ska anses ha skett
                  utförs även om ersättningssträngen är identisk
                  till strängen som den ersätter. Alla <backslash> som används
                  ändra standardbetydelsen för ett efterföljande tecken
                  ska kasseras från BRE:n eller ersättningen
                  innan du utvärderar BRE eller använder ersättningen.
                  Värdet på ''flaggor'' ska vara noll eller mer av:
                  ''n''          Ersätter endast den ''n'' :e förekomsten av
                            BRE finns inom mönsterrymden.
                  '''g'''          Globalt ersätter alla icke-överlappande
                            instanser av BRE snarare än bara
                            den första. Om både '''g''' och ''n'' anges,
                            resultaten är ospecificerade.
                  '''p'''          Skriv mönsterrymden till standardutdata if
                            en ersättare gjordes.
                  '''w''' ''wfile''    Skriv. Lägg till mönsterutrymmet till ''wfile'' om en
                            byte gjordes. En överensstämmande
                            ansökan ska föregå ''wfil-'' argumentet
                            med ett eller flera <blanka> tecken. Om '''w'''
                            flaggan är inte det sista flaggvärdet som anges i a
                            sammanlänkning av flera flaggvärden, den
                            resultaten är odefinierade.
        '''[''' ''2addr'' ''']t [''' ''label'' ''']'''
                  Test. Förgrena sig till kommandot ''':''' verb som bär ''etiketten'' if
                  eventuella byten har gjorts sedan den senaste
                  läsning av en ingångsrad eller exekvering av ett '''t''' . Om ''etikett''
                  är inte specificerad, förgrena sig till slutet av skriptet.
        '''[''' ''2addr'' ''']w''' ''wfile''
                  Lägg till (skriv) mönsterrymden till ''wfile'' .
        '''[''' ''2addr'' ''']x'''  Byt ut innehållet i mönstret och håll mellanrum.
        '''[''' ''2addr'' ''']y/''' ''string1'' '''/''' ''string2'' '''/'''
                  Ersätt alla förekomster av tecken i ''sträng1'' med
                  motsvarande tecken i ''string2'' . Om en
                  <backslash> följt av ett '''<nowiki/>'n'<nowiki/>''' visas i ''string1'' eller
                  ''string2'' , de två tecknen ska hanteras som en
                  singel <nylinje>. Om antalet tecken i
                  ''string1'' och ''string2'' är inte lika, eller om någon av de
                  tecken i ''sträng1'' visas mer än en gång
                  resultaten är odefinierade. Vilken karaktär som helst förutom
                  <backslash> eller <newline> kan användas istället för <slash>
                  för att avgränsa strängarna. Om avgränsaren inte är '''<nowiki/>'n'''' ,
                  inom ''string1'' och ''string2'' kan själva avgränsaren vara
                  används som ett bokstavligt tecken om det föregås av en
                  <omvänt snedstreck>. Om ett <omvänt snedstreck> tecken är omedelbart
                  följt av ett <backslash>-tecken i ''string1'' eller
                  ''string2'' ska de två <backslash>-tecknen vara
                  räknas som ett enda bokstavligt <backslash>-tecken. De
                  betydelsen av ett <omvänt snedstreck> följt av ett tecken som
                  är inte '''<nowiki/>'n'''' , ett <omvänt snedstreck> eller avgränsningstecknet
                  är odefinierat.
        '''[''' ''0addr'' ''']:''' ''etikett''
                  Gör ingenting. Detta kommando har en ''etikett'' som kommandona '''b'''
                  och '''t''' förgrenar sig till.
        '''[''' ''1addr'' ''']='''  Skriv följande till standardutdata:
                      "%d\n", < ''nuvarande radnummer'' >
        '''[''' ''0addr'' ''']'''    Ignorera detta tomma kommando.
        '''[''' ''0addr'' ''']#'''  Ignorera '''<nowiki/>'#'''' och resten av raden (behandla
                  dem som en kommentar), med det enda undantaget att om
                  de två första tecknen i skriptet är '''"#n"''' , den
                  standardutgången ska undertryckas; detta ska vara
                  motsvarar att ange '''-n''' på kommandoraden.
 
==== EXIT STATUS ====
        Följande utgångsvärden ska returneras:
        0 Lyckad avslutning.
        >0 Ett fel uppstod.
 
==== KONSEKVENSER AV FEL ====
        Standard.
        ''Följande avsnitt är informativa.''
 
==== ANVÄNDNING APPLIKATION ====
        Reguljära uttryck matchar hela strängar, inte bara enskilda
        rader, men en <nylinje> matchas av '''<nowiki/>'\n'<nowiki/>''' i en ''sed'' RE; a
        <newline> är inte tillåtet enligt den allmänna definitionen av vanlig
        uttryck i POSIX.1‐2008. Observera också att '''<nowiki/>'\n'''' inte kan användas till
        matcha en <nylinje> i slutet av en godtycklig inmatningsrad;
        <newline> tecken visas i mönsterrymden som ett resultat avredigeringskommandot
        N. '''_'''
        När du använder ''sed'' för att bearbeta sökvägsnamn, rekommenderas det
        LC_ALL, eller åtminstone LC_CTYPE och LC_COLLATE, är inställda på POSIX eller
        C i miljön, eftersom sökvägar kan innehålla bytesekvenser
        som inte bildar giltiga tecken i vissa lokaler, i så fall
        verktygets beteende skulle vara odefinierat. I POSIX-språket
        varje byte är ett giltigt enkelbytetecken, och därför detta
        problem undviks.
 
==== EXEMPEL ====
        Detta ''sed'' -skript simulerar kommandot BSD ''cat''  '''-s''' , squeezing
        överflödiga tomma rader från standardinmatning.
            sed -n '
            # Skriv rader som inte är tomma.
            /./ {
                sid
                d
                }
            # Skriv en enda tom rad och leta sedan efter fler tomma rader.
            /^$/ sid
            # Hämta nästa rad, kassera den hållna <nylinjen> (tom rad),
            # och leta efter fler tomma rader.
            :Tömma
            /^$/ {
                N
                s/.//
                b Tom
                }
            # Skriv den icke-tomma raden innan du går tillbaka till sökningen
            # för den första i en uppsättning tomma rader.
                sid
            '
        Följande ''sed-'' kommando är en mycket enklare metod för att klämma
        tomma rader, även om det inte är riktigt detsamma som ''katt''  '''-s''' eftersom det
        tar bort alla initiala tomma rader:
            sed -n '/./,/^$/p'
 
==== RATIONALE         ====
        Denna volym av POSIX.1‐2017 kräver implementeringar för att stödja
        minst tio distinkta ''wfiler'' , matchande historisk praxis på
        många implementeringar. Implementeringar uppmuntras att stödja
        fler, men överensstämmande applikationer bör inte överskrida denna gräns.
        Utgångsstatuskoderna som anges här skiljer sig från de i
        System V. System V returnerar 2 för förvrängda ''sed-'' kommandon, men
        returnerar noll med sitt användningsmeddelande eller om indatafilen kunde
        inte öppnas. Standardutvecklarna ansåg att detta var en
        insekt.
        Det sätt på vilket '''l''' -kommandot skriver icke-utskrivbara tecken
        ändrades för att undvika den historiska backspace-overstrike-metoden,
        och andra krav för att uppnå entydiga resultat lades till.
        Se MOTIVERING för ed(1p) för detaljer om det valda formatet,
        vilket är samma som valts för ''sed'' .
        Denna volym av POSIX.1‐2017 kräver implementeringar för att tillhandahålla
        mönster och håll mellanslag på minst 8192 byte, större än
        4000 byte utrymmen som används av vissa historiska implementeringar, men
        mindre än gränsen på 20480 byte som användes i ett tidigt förslag.
        Implementeringar uppmuntras att allokera dynamiskt större
        mönster och håll utrymmen efter behov.
        Kraven för godkännande av <blank> och <mellanslag> tecken
        i kommandorader har gjorts mer explicit än i början
        förslag för att tydligt beskriva den historiska praktiken och till
        ta bort förvirring om frasen ``skydda initiala tomrum [ ''sic'' ]
<nowiki> </nowiki>      och flikar från strippningen som görs på varje skriptrad<nowiki>''</nowiki>
<nowiki> </nowiki>      som förekommer i mycket av den historiska dokumentationen av ''sed''
        bruksbeskrivning av text. (Alla implementeringar är inte kända
        att ta bort <blanka> tecken från textrader, men
        de har alla tillåtit inledande <blank> tecken före
        adress på en kommandorad.)
        Behandlingen av '''<nowiki/>'#'''' kommentarer skiljer sig från SVID som endast
        tillåter en kommentar som den första raden i skriptet, men matchar
        BSD-härledda implementeringar. Kommentartecken behandlas som
        ett kommando, och det har samma egenskaper när det gäller att vara
        accepteras med inledande <blank> tecken; BSD-implementeringen
        har historiskt stött detta.
        Tidiga förslag krävde att en ''script_file'' hade minst en
        icke-kommentarrad. Vissa historiska implementeringar har fungerat i
        oväntade sätt om så inte var fallet. Standarden
        utvecklare ansåg att detta var felaktigt beteende och det
        applikationsutvecklare ska inte behöva undvika den här funktionen. A
        korrekt implementering av denna volym av POSIX.1‐2017 ska
        tillåt ''script_file'' s som endast består av kommentarsrader.
        Tidiga förslag indikerade att om '''-e''' och '''-f''' alternativ var
        blandade, alla '''-e-''' alternativ bearbetades före eventuella '''-f-''' alternativ.
        Detta har ändrats för att behandla dem i den ordning som presenteras
        eftersom det matchar historisk praxis och är mer intuitivt.
        Behandlingen av '''p''' -flaggan till kommandot '''s''' skiljer sig mellan
        System V och BSD-baserade system när standardutgången är
        undertryckt. I de två exemplen:
            echo a | sed 's/a/A/p'
            echo a | sed -n 's/a/A/p'
        denna volym av POSIX.1‐2017, BSD, System V-dokumentation och
        SVID indikerar att det första exemplet ska skriva två rader med
        '''A''' , medan den andra ska skriva en. Vissa System V-system
        skriv '''A''' endast en gång i båda exemplen eftersom '''p''' -flaggan är
        ignoreras om alternativet '''-n''' inte anges.
        Detta är ett fall av en diametral skillnad mellan system som
        kunde inte förenas genom kompromissen att förklara den
        beteende vara ospecificerat. SVID/BSD/System V-dokumentationen
        beteende antogs för denna volym av POSIX.1-2017 eftersom:
        * Ingen känd dokumentation för något historiskt system beskriver
            interaktion mellan '''p''' -flaggan och alternativet '''-n .'''
        * Det valda beteendet är mer korrekt eftersom det inte finns något
            teknisk motivering för eventuell interaktion mellan '''p'''
            -flaggan och alternativet '''-n .''' Ett förhållande mellan '''-n''' och '''p'''
            flaggan kan antyda att de bara används tillsammans, men detta
            ignorerar giltiga skript som avbryter den cykliska karaktären av
            bearbetningen genom användning av '''D''' , '''d''' , '''q''' , eller förgrening
            kommandon. Sådana skript förlitar sig på '''p''' -suffixet för att skriva
            mönsterutrymme eftersom de inte använder standarden
            utdata längst ned i skriptet.
        * Eftersom alternativet '''-n''' gör '''p''' -flaggan onödig, någon
            interaktion skulle bara vara användbart om ''sed'' -skript skrevs
            att köra både med och utan alternativet '''-n .''' Detta tror man
            att vara osannolikt. Det är ännu mer osannolikt att programmerare
            har kodat '''p''' -flaggan och förväntar sig att den är onödig. Därför att
            interaktionen var inte dokumenterad, sannolikheten för en
            programmerare upptäcker interaktionen och beroende på den är
            minskat ytterligare.
        * Slutligen, skript som går sönder under det angivna beteendet
            producera för mycket produktion istället för för lite, dvs
            lättare att diagnostisera och korrigera.
        Formen för ersättningskommandot som använder suffixet '''n''' var
        begränsat till de första 512 matcherna i ett tidigt förslag. Denna gräns
        har tagits bort eftersom det inte finns någon anledning att en redaktör bearbetar
        Rader med {LINE_MAX} längd bör ha denna begränsning. De
        kommando '''s/a/A/2047''' bör kunna ersätta 2047:e
        förekomst av '''a''' på en linje.
        Kommandona b ''', t''' och ''':''' är dokumenterade för att ignorera inledande vit
        utrymme, men inget nämnts om efterföljande vitt utrymme. Historisk
        implementeringar av ''sed'' tilldelade olika platser till etiketterna
        '''"x"''' och '''"x"''' . Detta är inte användbart, och leder till subtila
        programmeringsfel, men det är historisk praxis och förändras
        det skulle teoretiskt kunna bryta fungerande skript. Implementatorer är
        uppmuntras att tillhandahålla varningsmeddelanden om etiketter som är
        aldrig refereras av ett '''b-''' eller '''t''' -kommando, hoppar till etiketter som inte gör det
        existerar och markerar argument som är föremål för trunkering.
        Tidigare versioner av denna standard möjliggjorde implementeringar
        med andra bytes än åtta bitar, men detta har modifierats i
        denna version.
 
==== FUTURE DIRECTIONS ====
        Ingen.
 
==== SE ÄVEN ====
        [[awk]](1p) , [[ed]](1p) , [[grep]](1p)
        Basdefinitionsvolymen för POSIX.1‐2017, ''Tabell 5-1'' , ''Escape''
        ''Sequences and Associated Actions'' , ''Kapitel 8'' , ''Miljövariabler''
        , ''Avsnitt 9.3'' , ''Grundläggande reguljära uttryck'' , ''Avsnitt 12.2'' ,
        Riktlinjer ''för verktygssyntax''
 
==== COPYRIGHT ====
        Delar av denna text är omtryckta och reproducerade i elektronisk form
        blankett från IEEE Std 1003.1-2017, Standard for Information
        Teknik -- Portable Operating System Interface (POSIX), The
        Open Group Base Specifications Issue 7, 2018 Edition, Copyright
        (C) 2018 av Institutet för el och elektronik
        Engineers, Inc och The Open Group. Vid ev
        diskrepans mellan denna version och den ursprungliga IEEE och The
        Open Group Standard, den ursprungliga IEEE och The Open Group
        Standard är referensdokumentet. Den ursprungliga standarden kan vara
        fås online på <nowiki>http://www.opengroup.org/unix/online.html</nowiki> .
        Eventuella typografiska eller formateringsfel som visas på den här sidan
        mest sannolikt har införts under omvandlingen av
        källfilerna till man page-format. För att rapportera sådana fel, se
        <nowiki>https://www.kernel.org/doc/man-pages/reporting_bugs.html</nowiki> .
IEEE/The Open Group 2017                            ''SED'' (1P)
 
 
Se Också
 
[[sed, en strömredigerare]]
[[Kategori:Linux kommando]]

Nuvarande version från 10 januari 2026 kl. 07.34

Omdirigering till: