file1のパターンに一致する行を削除し、削除された行をfile2に保存します。

file1のパターンに一致する行を削除し、削除された行をfile2に保存します。

これがあり、file1パターンに一致する行を削除する必要があります。しかし、削除された行を別のfile2

sed    '/zz/!d' file1 > file2
sed -i '/zz/d' file1

これらのコマンドを1つにまとめる方法はありますか?

それとも、よりエレガントな方法はありますか?

ベストアンサー1

GNU Sedをチェックしてください。

sed -ni '/zz/!{p;b};w file2' file1

フラグはこの順序で行わなければなりません-ni

説明:dコマンドを使用してスクリプトを停止するのではなくフラグ(自動)を設定し、コマンド(現在のパターンスペースを印刷)を使用して-nテンプレートと一致しない行を作成し、スクリプトの最後に移動します。パターンと一致する行は、パターン空間をファイルに書き込むコマンドに到達します。pbw

おすすめ記事