1

sedのインプレースコマンドを実行して、ファイル内の特定の行のみを保持したいと思います。-iこれは、置換コマンドを使用したsedを使用してファイル行をインプレース置換する通常の使用法とは異なります。たとえば、次のファイルがあるとします。

> cat file.txt
fox
rabbit
fox
fox
wolf

そして、私はキツネと一致する線だけを保ちたいです。私の考えは:

sed -inr '/fox/p' file.txt

しかし、これは期待どおりに機能しません。私は何が欠けていますか?

4

2 に答える 2

2

「-i」がオプションの引数を取るという事実を見逃しているため、-inr は -i -n -r と同じではなく、-i"nr" と同じです。試す:

sed -i -nr '/fox/p' file
于 2013-03-09T15:36:40.917 に答える
1

この行を試してください:

sed -i '/fox/!{s/.//g}' file

これにより、一致しない行が削除されずに空になります。そのfoxため、線はその場所にとどまっています。

これらの一致しない行を削除するだけの場合:

sed -i '/fox/!d' file
于 2013-03-08T15:57:16.663 に答える