sed
Toegevoegde opties
Zoeken…
Syntaxis
- -a - (BSD sed) Maak / beknot alle bestanden waarnaar geschreven is voor verwerking
- -E | -r - Gebruik uitgebreide reguliere expressies
- -i | -I - Raadpleeg het onderwerp over Bewerken ter plaatse
- -l - (BSD sed) Gebruik lijngebufferde uitvoer
- -l length - (GNU sed) Geef de lengte op voor de opdrachtomloop
l
- -s - (GNU sed) Bestanden behandelen als afzonderlijke streams
- -u - Buffer de uitvoer niet
- -z - (GNU sed) Gebruik het NUL-teken om records te scheiden
- --stil | --silent - (GNU sed) Synoniemen voor
-n
- --expression = command - - (GNU sed) Synoniem voor
-e
- --file = command_file - (GNU sed) Synoniem voor
-f
- --volgende-symlinks - (GNU sed) Volg symlinks
- --in-place [= extensie] - (GNU sed) Synoniem voor
-i
- --line-length = length - (GNU sed) Synoniem voor
-l
- --separate - (GNU sed) Synoniem voor
-s
- --unbuffered - (GNU sed) Synoniem voor
-u
- --null-data - (GNU sed) Synoniem voor
-z
- --help - (GNU sed) Printgebruik
- --version - (GNU sed) Afdrukversie
Opmerkingen
De optie -E
moet worden gestandaardiseerd in de volgende hoofdversie, zie het relevante probleem .
Vertraging creatie / afkappen van bestanden
Bestanden waarnaar wordt geschreven met de opdracht w
worden gemaakt / afgekapt voordat opdrachten worden uitgevoerd.
$ sed 'w created-file' < /dev/null && ls created-file && rm created-file
created-file
Van de standaard:
Elk bestand moet worden gemaakt voordat de verwerking begint. Implementaties ondersteunen ten minste tien wfile-argumenten in het script; het werkelijke aantal (groter dan of gelijk aan 10) dat wordt ondersteund door de implementatie, is niet gespecificeerd. Het gebruik van de parameter wfile zorgt ervoor dat dat bestand in eerste instantie wordt gemaakt, als het niet bestaat, of vervangt de inhoud van een bestaand bestand.
BSD sed
biedt de optie -a
om het maken / afkappen van bestanden uit te stellen totdat er met het w
commando naar wordt geschreven.
$ 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
De lengte van de regelterugloop bij gebruik van de opdracht l
is door de implementatie bepaald.
Van de standaard:
Lange lijnen moeten worden gevouwen, waarbij het vouwpunt wordt aangegeven door het schrijven van een gevolgd door een; de lengte waarop vouwen plaatsvindt, is niet gespecificeerd, maar moet geschikt zijn voor het uitvoerapparaat.
GNU sed
biedt de optie -l
om de lengte op te geven waarmee lange lijnen moeten worden gesplitst bij het afdrukken met de opdracht l
, standaard ingesteld op zeventig tekens.
$ 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
splitst lange rijen bij het nummer van de omgevingsvariabele COLUMNS
als COLUMNS
niet voorzien dan splitst het op de terminal breedte en als COULMNS
niet voorzien en de uitgang geen terminal dan standaard zestig tekens.
$ 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 $