テキストファイルを含むフォルダがあります。これらのテキストファイルから「BA」を含む行を抽出する必要があります。grepコマンドを使用して、BAを使用して行を印刷しました。出力を同じファイル名の別のフォルダーに保存したいと思います。次のコードを変更するにはどうすればよいですか?
grep " BA " dir/*.txt
テキストファイルを含むフォルダがあります。これらのテキストファイルから「BA」を含む行を抽出する必要があります。grepコマンドを使用して、BAを使用して行を印刷しました。出力を同じファイル名の別のフォルダーに保存したいと思います。次のコードを変更するにはどうすればよいですか?
grep " BA " dir/*.txt
for i in dir/*.txt; do
grep " BA " $i > $newdir/`basename $i`
done
basenameの使用に注意してください。これは、 dir/a.txt
(たとえば)を取り、a.txt
GNUパラレルの仕事のように聞こえます:
parallel --dry-run grep '" BA "' '{} > otherdir/{/}' ::: dir/{a,b,c}.txt
出力:
grep " BA " dir/a.txt > otherdir/a.txt
grep " BA " dir/b.txt > otherdir/b.txt
grep " BA " dir/c.txt > otherdir/c.txt
表示内容に満足したら削除--dry-run
します。
{}
の後に入力が置き換えられ:::
ます(これらはstdinまたはファイルから取得することもできます) 。{/}
はのベース名です{}
。