sed - 複数のファイルに変更を適用する

sed - 複数のファイルに変更を適用する

</foo:bar>" "を含む何百ものファイルがあります。

cc
bb
aa
</foo:bar>
dd
xx
vv

一度に変えたいです。

cc
bb
aa
</foo:bar>

sed は正確なファイル名を指定すると正常に動作します。

sed -i "/</foo:bar>/q" 99999.txt

しかし、一度にすべて変更しようとすると、何の結果も得られません。

 sed -i "/<\/foo:bar>/q" *.txt

ベストアンサー1

努力する:

sed -s -n -i '0,/<\/foo:bar>/p' *.txt

-ssed に各ファイルを個別に処理するよう指示します。

すべてのファイルが完了する前に終了したくないので、残りの行ではなく sed最初から印刷するように変更します。明示的に要求されない限り、印刷しないようにsedに指示します。このコマンドは、sedにファイルの先頭から一致する最初の行まですべての行を印刷するように指示します。<\/foo:bar>-n0,/<\/foo:bar>/p<\/foo:bar>

この-sオプションはBSD / OSX sedでは機能しません。

おすすめ記事