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
lavvolgimento 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 $