GNU/Linux >> Tutoriales Linux >  >> Linux

El comando sed de Linux no cambia el archivo de destino

Si desea almacenar los cambios desde sed volver al archivo usa el -i opción:

$ cat file
<head>abc</head>
    <td>hello</td>
      <td>hello</td>
        <td>hello</td>
    <td>abc</td>
     <td>abc</td>
<h1>abc</h1>

$ sed -ni '/<td>/{s/^\s*//;s/abc//;s/<\/\?td>//g;p}' file

$ cat file
hello
hello
hello

Editar: La expresión regular es más clara si usamos un separador diferente con sed y use la opción de expresión regular extendida -r :

$ sed -r 's_</?td>__g' file
    hello
      hello
        hello
    abc
     abc

El ? hacer que el carácter anterior sea opcional para que el / no tiene que estar presente haciendo que la expresión regular coincida con <td> y </td> en uno.


En el comando sed Use la opción -i para cambiar el archivo , si no, la salida se imprime en la pantalla pero el archivo permanece igual.

La fórmula sería:

sed -i <targetFile> 's/<beforeText>/<afterText>/g' <targetFile>

Por ejemplo:

sed -i myCredentials.txt 's/secretPassword/xxx/g' myCredentials.txt

Otra opción - salida a otro archivo y cámbiele el nombre:

sed 's/secretPassword/xxx/g' myCredentials.txt > temp.txt
rm myCredentials.txt && mv temp.txt myCredentials.txt

para obtener más información, consulte la documentación:

La utilidad sed lee los archivos especificados, o la entrada estándar si no se especifican archivos, modificando la entrada según lo especificado por una lista de comandos . Luego, la entrada se escribe en la salida estándar. Se puede especificar un solo comando como primer argumento para sed. Se pueden especificar múltiples comandos utilizando las opciones -e o -f. Todos los comandos se aplican a la entrada en el orden en que se especifican, independientemente de su origen.

-i Editar archivos en el lugar , guardando copias de seguridad con la extensión especificada. Si se proporciona una extensión de longitud cero, no se guardará ninguna copia de seguridad. No se recomienda dar una extensión de longitud cero al editar archivos en el lugar, ya que corre el riesgo de corrupción o contenido parcial en situaciones en las que se agota el espacio en disco, etc.


Linux
  1. Cómo usar el comando sed de Linux

  2. El comando Sed de Linux:uso y ejemplos

  3. ¿Cómo el comando Sed '1!g;h;$!d' invierte el contenido de un archivo?

  4. Ejemplos de comandos sed en Linux

  5. sed:comando no encontrado

Comando Chown en Linux (Cambiar la propiedad del archivo)

Cómo cambiar la prioridad de un proceso en Linux

Comando Chmod:cómo cambiar los permisos de archivo en Linux

Ver el contenido de un archivo en la línea de comandos de Linux

Los 50 Ejemplos Prácticos del Comando SED en Linux

¿Cómo usar el comando Gzip en Linux?