sed
からの変更を保存する場合 -i
を使用してファイルに戻ります オプション:
$ 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
編集: sed
で別のセパレータを使用すると、正規表現がより明確になります 拡張正規表現オプション -r
を使用します :
$ sed -r 's_</?td>__g' file
hello
hello
hello
abc
abc
?
前の文字をオプションにして /
正規表現を <td>
に一致させるために存在する必要はありません そして </td>
1つに。
sed コマンドで ファイル自体を変更するには -i オプションを使用します そうでない場合、出力は画面に表示されますが、ファイルは同じままです。
式は次のようになります:
sed -i <targetFile> 's/<beforeText>/<afterText>/g' <targetFile>
例:
sed -i myCredentials.txt 's/secretPassword/xxx/g' myCredentials.txt
別のオプション - 別のファイルに出力して名前を変更:
sed 's/secretPassword/xxx/g' myCredentials.txt > temp.txt
rm myCredentials.txt && mv temp.txt myCredentials.txt
詳細については、ドキュメントを参照してください:
<ブロック引用>sed ユーティリティは、指定されたファイル、または nofiles が指定されている場合は標準入力を読み取り、コマンドのリストで指定された入力を変更します .次に、入力は標準出力に書き込まれます。単一のコマンドを sed の最初の引数として指定できます。 -e または -f オプションを使用して、複数のコマンドを指定できます。すべてのコマンドは、その起源に関係なく、指定された順序で入力に適用されます。
-私 ファイルをその場で編集 、指定された拡張子でバックアップを保存します。長さゼロの拡張子が指定された場合、バックアップは保存されません。ファイルのインプレース編集時に長さ 0 の拡張子を付けることはお勧めしません。ディスク容量が使い果たされた場合などに破損や部分的なコンテンツが発生するリスクがあるためです。