1

テキストファイルを含むフォルダがあります。これらのテキストファイルから「BA」を含む行を抽出する必要があります。grepコマンドを使用して、BAを使用して行を印刷しました。出力を同じファイル名の別のフォルダーに保存したいと思います。次のコードを変更するにはどうすればよいですか?

grep "  BA  "  dir/*.txt
4

2 に答える 2

2
for i in dir/*.txt; do
   grep "  BA  " $i > $newdir/`basename $i`
done

basenameの使用に注意してください。これは、 dir/a.txt(たとえば)を取り、a.txt

于 2012-11-29T16:01:09.347 に答える
1

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またはファイルから取得することもできます) 。{/}はのベース名です{}

于 2012-11-29T19:57:44.303 に答える