GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo cambiar una palabra en un archivo con script de shell de Linux

Podrías usar sed:

sed -i 's/MyCar on/MyCar off/' path/to/file

Puedes hacer esto solo con shell. Este ejemplo usa una declaración de caso innecesaria para este ejemplo en particular, pero la incluí para mostrar cómo podría incorporar múltiples reemplazos. Aunque el código es más grande que un sed 1-liner, por lo general es mucho más rápido, ya que solo usa shell integrado (hasta 20 veces para archivos pequeños).

REPLACEOLD="old"
WITHNEW="new"
FILE="tmpfile"
OUTPUT=""
while read LINE || [ "$LINE" ]; do
    case "$LINE" in
        *${REPLACEOLD}*)OUTPUT="${OUTPUT}${LINE//$REPLACEOLD/$WITHNEW}
";;
        *)OUTPUT="${OUTPUT}${LINE}
";;
    esac
done < "${FILE}"
printf "${OUTPUT}" > "${FILE}"

para el caso simple, se podría omitir la declaración del caso:

while read LINE || [ "$LINE" ]; do
    OUTPUT="${OUTPUT}${LINE//$REPLACEOLD/$WITHNEW}
"; done < "${FILE}"
printf "${OUTPUT}" > "${FILE}"

Nota:el ...|| [ "$LINE" ]... bit es para evitar perder la última línea de un archivo que no termina en una nueva línea (ahora conoce al menos una razón por la cual su editor de texto sigue agregando esos)


Linux
  1. Cómo ver o cambiar ACL en archivos de Linux

  2. ¿Cómo crear un archivo temporal en Shell Script?

  3. Cómo cambiar Shell en Linux

  4. Cómo ejecutar un script de shell al inicio

  5. ¿Plantillas con Linux en un script de Shell?

Cómo ejecutar Shell Script como servicio Systemd en Linux

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

Cómo cambiar el límite de archivos abiertos en Linux

Cómo almacenar un comando de Linux como una variable en el script de Shell

Cómo cambiar el shell predeterminado en el sistema Linux

Cómo cambiar un Shell de usuario en Linux