これがあり、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
テンプレートと一致しない行を作成し、スクリプトの最後に移動します。パターンと一致する行は、パターン空間をファイルに書き込むコマンドに到達します。p
b
w