STDOUTで多くの出力を生成するコマンドがあり、次のようにそれをファイルにリダイレクトできることがわかります。
./myCMD 1>tmp
出力をファイルにリダイレクトする前にフィルタリングする方法たとえば、特定のキーワードを含む出力行のみをリダイレクトしたいとします。
ベストアンサー1
tmp
特定の行だけをファイルに入れ、残りを変更したくない場合:
cmd | awk '/pattern/ {print > "tmp"; next}
{print}'
または:
cmd | sed '/pattern/!b
w tmp
d'
(一行cmd | sed -e '/pattern/!b' -e 'w tmp' -e d
:)
または:
cmd | sed '/pattern/ {
w tmp
d
}'
(一行cmd | sed -e '/pattern/{w tmp' -e 'd;}'
:)
sed
についてpattern
基本的な正規表現であるのに対し、についてはawk
次のとおりです。拡大する正規表現。