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 $


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow