sed
Opzioni aggiuntive
Ricerca…
Sintassi
- -a - (BSD sed) Crea / tronca tutti i file scritti prima dell'elaborazione
- -E | -r - Usa le espressioni regolari estese
- -i | -I - Fare riferimento all'argomento sul montaggio diretto
- -l - (BSD sed) Usa l'output con buffer di linea
- -l lunghezza - (GNU sed) Specifica la lunghezza per
l
avvolgimento riga di comando - -s - (GNU sed) Tratta i file come flussi separati
- -u - Non bufferizzare l'output
- -z - (GNU sed) Usa il carattere NUL per separare i record
- --quiet | --silent - (GNU sed) Sinonimi per
-n
- --expression = command - (GNU sed) Sinonimo di
-e
- --file = command_file - (GNU sed) Sinonimo di
-f
- - follow-symlinks - (GNU sed) Segui i collegamenti simbolici
- --in-place [= estensione] - (GNU sed) Sinonimo di
-i
- --line-length = length - (GNU sed) Sinonimo di
-l
- --separate - (GNU sed) Sinonimo di
-s
- --unbuffered - (GNU sed) Sinonimo di
-u
- --null-data - (GNU sed) Sinonimo di
-z
- --help - (GNU sed) Utilizzo della stampa
- --version - (GNU sed) Versione di stampa
Osservazioni
L'opzione -E
deve essere standardizzata nella prossima versione principale, vedere il problema pertinente .
Ritardo Creazione / Troncamento di file
I file scritti con il comando w
vengono creati / troncati prima dell'esecuzione di qualsiasi comando.
$ sed 'w created-file' < /dev/null && ls created-file && rm created-file
created-file
Dallo standard:
Ogni wfile deve essere creato prima dell'elaborazione. Le implementazioni devono supportare almeno dieci argomenti wfile nella sceneggiatura; il numero effettivo (maggiore o uguale a 10) supportato dall'implementazione non è specificato. L'uso del parametro wfile farà sì che quel file sia inizialmente creato, se non esiste, o sostituirà il contenuto di un file esistente.
BSD sed
fornisce l'opzione -a
per ritardare la creazione / il troncamento dei file fino a quando non vengono scritti con il comando w
.
$ 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
La lunghezza della linea di avvolgimento quando si utilizza il comando l
è definita dall'implementazione.
Dallo standard:
Le linee lunghe devono essere piegate, con il punto di piegatura indicato con la scritta a seguita da a; la lunghezza a cui avviene la piegatura non è specificata, ma dovrebbe essere appropriata per il dispositivo di output.
GNU sed
fornisce l'opzione -l
per specificare la lunghezza alla quale dividere le linee lunghe quando si stampa con il comando l
, con l'impostazione predefinita di settanta caratteri.
$ 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
divide lunghe righe al numero fornito dalla variabile di ambiente COLUMNS
, se COLUMNS
non viene fornito, si divide alla larghezza del terminale e se COULMNS
non viene fornito e l'output non è un terminale, il suo valore predefinito è di sessanta caratteri.
$ 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 $