GNU/Linux >> Linux Esercitazione >  >> Linux

Il comando sed di Linux non modifica il file di destinazione

Se vuoi memorizzare le modifiche da sed tornando al file usa il -i opzione:

$ 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

Modifica: La regexp è più chiara se usiamo un diverso separatore con sed e usa l'opzione regexp estesa -r :

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

Il ? rendere facoltativo il carattere precedente quindi il / non deve essere presente affinché l'espressione regolare corrisponda a <td> e </td> in uno.


Nel comando sed Usa l'opzione -i per modificare il file stesso , in caso contrario, l'output viene stampato sullo schermo ma il file rimane lo stesso.

La formula sarebbe:

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

Ad esempio:

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

Un'altra opzione - emetti l'output in un altro file e rinominalo:

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

per maggiori informazioni, guarda la documentazione:

L'utilità sed legge i file specificati o lo standard input se non sono specificati file, modificando l'input come specificato da un elenco di comandi . L'input viene quindi scritto nello standard output. Un singolo comando può essere specificato come primo argomento di sed. È possibile specificare più comandi utilizzando le opzioni -e o -f. Tutti i comandi vengono applicati all'input nell'ordine in cui sono specificati indipendentemente dalla loro origine.

-i Modifica i file sul posto , salvando i backup con l'estensione specificata. Se viene fornita un'estensione di lunghezza zero, non verrà salvato alcun backup. Non è consigliabile assegnare un'estensione di lunghezza zero quando si modificano i file sul posto, poiché si rischia il danneggiamento o il contenuto parziale in situazioni in cui lo spazio su disco è esaurito, ecc.


Linux
  1. Come utilizzare il comando Tar in Linux

  2. Il comando Sed di Linux:utilizzo ed esempi

  3. In che modo il comando Sed '1!g;h;$!d' inverte il contenuto di un file?

  4. Esempi di comandi sed in Linux

  5. sed:comando non trovato

Comando Chown in Linux (Modifica proprietà file)

Come modificare la priorità di un processo in Linux

Comando Chmod:come modificare le autorizzazioni dei file in Linux

Visualizza il contenuto di un file nella riga di comando di Linux

I 50 esempi pratici del comando SED in Linux

Come utilizzare il comando Gzip in Linux?