Usando múltiples comandos sed para manipulación de texto

Usando múltiples comandos sed para manipulación de texto

Tengo un archivo bash en el que me gustaría realizar varios cambios.

sed -i 's/      /    /g' testfile
sed -i -e 's/#[a-z]$//' -e '/^$/d' testfile
sed -i 's/ *$//' testfile
sed '/##=/ r header' testfile

En el primer comando, me gustaría reemplazar TAB con espacios y luego eliminar los comentarios (también hay comentarios que comienzan con ##) y líneas vacías. Después de eso, me gustaría insertar un archivo después de un patrón específico en mi archivo. ¿Hay algún problema con el orden de los comandos?

Respuesta1

puedes dar varias instrucciones en una sola toma de sed, por ejemplo:

sed 's/\t/    /g;/^ *$/d;s/^#/NODIESE/' testfile

esta sola línea

  1. reemplazar pestaña con espacio
  2. eliminar línea que comienza con cosas vacías (o línea vacía)
  3. reemplace Dash al inicio con la palabra NODIESE

por lo que su archivo de prueba se procesa solo una vez y ejecuta sed solo una vez.

información relacionada