linux:bash:sed

Aquesta és una revisió antiga del document


sed

Stream EDitor

sed [-ns] '[direccion] instruccion argumentos'

donde:

  • -n : no mostrar por STDOUT las líneas procesadas
  • -s : tratar los ficheros entrantes como flujos separados
  • dirección: número de línea, rango de números de línea o búsqueda por regexp. Si no se especifica, afecta a todas las líneas del fichero
  • instrucción (sobre la línea actual o procesada):
    • i : insertar antes
    • a : insertar después
    • c : cambiar
    • d : borrar
    • p : imprimir (STDOUT)
    • s : sustituir cadena
    • r <fichero> : añadir contenido de fichero
    • w <fichero> : escribir salida a fichero
    • ! : negar la condición
    • q : finalizar procesamiento de fichero
  • -i : actualiza el fichero «sujeto»
  • s/cadena1/cadena2/g : sustituye cadena1 por cadena2 en todo el documento (parámetro g - global)
  • s+cadena1+cadena+g : idem anterior (hemos cambiado el saparado de la REGEXP, por si nos interesa)
  • s/abc/xyz/gI : (parámetro I permite sustituir ignorando si van en mayúsculas o minúsculas)

reemplaza «abc» por «zyz» en el archivo1 generando el archivo2:

sed s/abc/xyz/g archivo1  > archivo2

actualiza el fichero, misma sustitución anterior

sed -i s/abc/xyz/g archivo1

idem anterior, pero con variables:

sed "s|$var1|$var2|" archivo1  > archivo2''

realiza una sustitución solo si la línea contiene un valor determinado, si la linea contiene requisito, cambia el texto1 por el texto2 :

 sed -e "/requisito/s/texto1/texto2/g"
  • linux/bash/sed.1534833209.txt.gz
  • Darrera modificació: 20/08/2018 23:33
  • per mate