sed
Opciones adicionales
Buscar..
Sintaxis
- -a - (BSD sed) Crea / Trunca todos los archivos escritos antes de procesar
- -E | -r - Usa expresiones regulares extendidas
- -i | -I - Consulte el tema sobre la edición en el lugar
- -l - (BSD sed) Usa la salida con buffer de línea
- -l longitud - (GNU sed) Especifique la longitud para
l
comando de ajuste de línea - -s - (GNU sed) Trata los archivos como flujos separados
- -u - No búfer la salida
- -z - (GNU sed) Usa el carácter NUL para separar los registros
- --quieto | --silent - (GNU sed) Sinónimos para
-n
- --expression = command - (GNU sed) Sinónimo para
-e
- --file = command_file - (GNU sed) Sinónimo para
-f
- --seguir-enlaces simbólicos - (GNU sed) Seguir enlaces simbólicos
- --in-place [= extension] - (GNU sed) Sinónimo para
-i
- --line-length = length - (GNU sed) Sinónimo para
-l
- --separate - (GNU sed) Sinónimo para
-s
- --unbuffered - (GNU sed) Sinónimo de
-u
- --null-data - (GNU sed) Sinónimo de
-z
- --help - (GNU sed) Uso de impresión
- --version - (GNU sed) Versión para imprimir
Observaciones
La opción -E
se estandarizará en la próxima versión principal, vea el problema relevante .
Retraso en la creación / truncamiento de archivos
Los archivos escritos con el comando w
se crean / truncan antes de ejecutar cualquier comando.
$ sed 'w created-file' < /dev/null && ls created-file && rm created-file
created-file
De la norma:
Cada archivo se creará antes de que comience el procesamiento. Las implementaciones admitirán al menos diez argumentos wfile en el script; el número real (mayor o igual a 10) que es compatible con la implementación no está especificado. El uso del parámetro wfile hará que ese archivo se cree inicialmente, si no existe, o reemplazará el contenido de un archivo existente.
BSD sed
proporciona la opción -a
para retrasar la creación / truncado de archivos hasta que se escriben con el 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' envoltura de línea
La longitud del ajuste de línea cuando se usa el comando l
se define por la implementación.
De la norma:
Las líneas largas se plegarán, con el punto de plegado indicado escribiendo a seguido de a; la longitud a la que se produce el plegado no está especificada, pero debe ser apropiada para el dispositivo de salida.
GNU sed
proporciona la opción -l
para especificar la longitud en la que se dividirán las líneas largas al imprimir con el comando l
, con un valor predeterminado de setenta caracteres.
$ 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 líneas largas en el número proporcionado por la variable de entorno COLUMNS
, si COLUMNS
no se proporciona, entonces se divide en el ancho del terminal, y si COULMNS
no se proporciona y la salida no es un terminal, por defecto tiene sesenta caracteres.
$ 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 $