1
我有一个包含文本文件的文件夹。我需要从这些文本文件中提取具有'BA'的行。我用grep命令打印BA的行。我想将输出保存到具有相同文件名的另一个文件夹中。我如何更改以下代码?如何将grep结果发送到每个输入文件的不同输出文件中?
grep " BA " dir/*.txt
我有一个包含文本文件的文件夹。我需要从这些文本文件中提取具有'BA'的行。我用grep命令打印BA的行。我想将输出保存到具有相同文件名的另一个文件夹中。我如何更改以下代码?如何将grep结果发送到每个输入文件的不同输出文件中?
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
当你满意你看到的。
{}
由输入:::
后更换(这些也可以来自标准输入或一个文件),{/}
是{}
基名。