GNU/Linux >> Linux Esercitazione >  >> Linux

Come cambiare una parola in un file con lo script della shell linux

Potresti usare sed:

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

Puoi farlo solo con la shell. Questo esempio utilizza un'istruzione case non necessaria per questo particolare esempio, ma l'ho inclusa per mostrare come è possibile incorporare più sostituzioni. Sebbene il codice sia più grande di un sed 1-liner, in genere è molto più veloce poiché utilizza solo i built-in della shell (fino a 20x per i file di piccole dimensioni).

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}"

per il caso semplice si potrebbe omettere l'istruzione case:

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

Nota:il ...|| [ "$LINE" ]... serve per evitare di perdere l'ultima riga di un file che non termina con una nuova riga (ora conosci almeno un motivo per cui il tuo editor di testo continua ad aggiungerli)


Linux
  1. Come visualizzare o modificare l'ACL nei file Linux

  2. Come creare un file temporaneo nello script della shell?

  3. Come cambiare la shell in Linux

  4. Directory di modifica dello script Shell con variabile

  5. Creazione di modelli con Linux in uno script Shell?

Come eseguire lo script della shell come servizio Systemd in Linux

Comando Chmod:come modificare le autorizzazioni dei file in Linux

Come modificare il limite di file aperti in Linux

Come memorizzare un comando Linux come variabile nello script della shell

Come modificare la shell predefinita nel sistema Linux

Come modificare una shell utente in Linux