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 $


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow