GNU/Linux >> Znalost Linux >  >> Linux

Příkaz sed pro Linux nemění cílový soubor

Pokud chcete uložit změny z sed zpět do souboru použijte -i možnost:

$ 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

Upravit: Regulární výraz je jasnější, pokud použijeme jiný oddělovač s sed a použijte rozšířenou volbu regulárního výrazu -r :

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

? nastavte předchozí znak jako volitelný, takže / nemusí být přítomen, aby se regulární výraz shodoval s <td> a </td> v jednom.


V příkazu sed Použijte volbu -i ke změně samotného souboru , pokud ne, výstup se vytiskne na obrazovku, ale soubor zůstane stejný.

Vzorec by byl:

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

Například:

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

Další možnost - výstup do jiného souboru a jeho přejmenování:

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

pro více informací se podívejte do dokumentace:

Obslužný program sed čte zadané soubory nebo standardní vstup, pokud jsou zadány nofiles, a upravuje vstup podle seznamu příkazů . Vstup je poté zapsán na standardní výstup. Jako první argument pro sed lze zadat jeden příkaz. Vícenásobné příkazy lze zadat pomocí voleb -e nebo -f. Všechny příkazy jsou aplikovány na vstup v pořadí, v jakém jsou zadány, bez ohledu na jejich původ.

-i Úpravy souborů na místě , ukládající zálohy se zadanou příponou. Pokud je zadána přípona s nulovou délkou, žádná záloha se neuloží. Při úpravách souborů se nedoporučuje dávat příponu nulové délky, protože riskujete poškození nebo částečný obsah v situacích, kdy je vyčerpán diskový prostor atd.


Linux
  1. Jak používat příkaz Tar v Linuxu

  2. Příkaz Linux Sed:Použití a příklady

  3. Příklady příkazů sed v Linuxu

  1. Jak příkaz Sed ‚1!g;h;$!d‘ obrátí obsah souboru?

  2. Základní příklady příkazu File v Linuxu

  3. sed:příkaz nenalezen

  1. Jak používat příkaz sed pro Linux

  2. Jak používat příkaz md5sum v Linuxu

  3. 9 Užitečné příklady příkazu Split v Linuxu