我有一个包含文本文件的文件夹。我需要从这些文本文件中提取具有“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
当您对所看到的内容感到满意时移除。
{}
被替换为之后的输入:::
(这些也可以来自标准输入或文件),{/}
是{}
.