sed
Ytterligare alternativ
Sök…
Syntax
- -a - (BSD sed) Skapa / trunkera alla filer skrivna till innan bearbetning
- -E | -r - Använd utökade regelbundna uttryck
- -i | -I - Se ämnet om platsredigering
- -l - (BSD sed) Använd linjebuffrad utgång
- -l längd - (GNU sed) Ange längden för
l
kommandoradslindning - -s - (GNU sed) Behandla filer som separata strömmar
- -u - Buffera inte utgången
- -z - (GNU sed) Använd NUL-tecknet för att separera poster
- - tyst | --silent - (GNU sed) Synonymer för
-n
- - expression = command - (GNU sed) Synonym för
-e
- - fil = command_file - (GNU sed) Synonym för
-f
- - Följande symlänkar - (GNU sed) Följ symlänkar
- --in-place [= förlängning] - (GNU sed) Synonym för
-i
- - line-length = length - (GNU sed) Synonym för
-l
- - separat - (GNU sed) Synonym för
-s
- --unbuffered - (GNU sed) Synonym för
-u
- --null-data - (GNU sed) Synonym för
-z
- --hjälp - (GNU sed) Utskriftsanvändning
- --version - (GNU sed) Utskriftsversion
Anmärkningar
Alternativet -E
ska standardiseras i nästa större version, se relevant problem .
Försena skapande / avkortning av filer
Filer skrivna till med w
kommandot skapas / trunkeras innan några kommandon körs.
$ sed 'w created-file' < /dev/null && ls created-file && rm created-file
created-file
Från standarden:
Varje fil ska skapas innan behandlingen påbörjas. Implementeringar ska stödja minst tio filfilargument i skriptet; det faktiska antalet (större än eller lika med 10) som stöds av implementeringen är inte specificerat. Användningen av wfile-parametern ska göra att filen ursprungligen skapas, om den inte finns, eller ska ersätta innehållet i en befintlig fil.
BSD sed
ger -a
alternativet försening skapar / trunkering filer tills de skrivs till med w
kommandot.
$ if sed -a 'w created-file' < /dev/null && [ ! -e created-file ]; then
> echo The file was not created
> fi
The file was not created
"l" Line-Wrapping
Längden på radomslaget när du använder l
kommandot definieras implementering.
Från standarden:
Långa rader ska vikas med vikningspunkten indikerad genom att skriva en följt av a; längden vid vilken vikning sker är inte specificerad, men bör vara lämplig för utgångsenheten.
GNU sed
tillhandahåller -l
alternativet för att ange längden för att dela långa rader vid utskrift med l
kommandot, som har sjuttio tecken.
$ yes | head -c100 | tr '\n' ' ' | sed -n l | head -n1 | wc -c
71
$ yes | head -c100 | tr '\n' ' ' | sed -nl50 l | head -n1 | wc -c
51
BSD sed
delar upp långa rader vid det antal som tillhandahålls av miljövariabeln COLUMNS
, om COLUMNS
inte tillhandahålls delas det vid terminalbredden, och om COULMNS
inte tillhandahålls och utgången inte är en terminal, är den standard till sextio tecken.
$ yes | head -c100 | tr '\n' ' ' | sed -n l | head -n1 | wc -c
61
$ yes | head -c100 | tr '\n' ' ' | COLUMNS=50 sed -n l | head -n1 | wc -c
51
$ yes | head -c100 | tr '\n' ' ' | sed -n l | head -n1
y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y\
y y y y y y y y y y $