我想grep一个目录中的多个文件,并在一个单独的文件中收集每个grep的输出。所以,如果我grep 20个文件,我应该得到20个包含搜索项目的输出文件。任何人都可以帮我吗?感谢。
答案 0 :(得分:8)
使用for
声明:
for a in *.txt; do grep target $a >$a.out; done
答案 1 :(得分:1)
只有一个gawk命令
gawk '/target/ {print $0 > FILENAME".out"}' *.txt
答案 2 :(得分:0)
你可以只使用shell,不需要外部命令
for file in *.txt
do
while read -r line
do
case "$line" in
*pattern*) echo $line >> "${file%.txt}.out";;
esac
done < "$file"
done