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.