次のファイルがあります。
file.foo
file2.foo
file.bar
file3.foo
これで終わる行だけを返したいのですが、withを含む.foo
すべての項目の名前を変更したいと思います。この場合は完全にスキップすることを意味します。私は何をすべきですか?file
blag
file.bar
ただsedを使う?私が現在やっていることは基本的に次のとおりです。
grep '\.foo$' input | sed -e's/file/blag/'
しかし、grepを削除したいと思います。
ベストアンサー1
または、ミラーリングし、デフォルトの印刷をオフにし、置き換え、目的の行だけを印刷します。
sed -n 's/file/blag/; /\.foo$/p' < input
または、目的の行をフィルタリングします。最初、交換して印刷します。
sed -n '/\.foo$/ { s/file/blag/; p }' < input