2009-11-25 55 views
2

我想grep在一个目录中的多个文件,并收集每个grep的输出在一个单独的文件..所以如果我grep 20个文件,我应该得到20个输出文件包含搜索项目。任何人都可以帮助我吗?谢谢。grep-ing多个文件

回答

8

使用for声明:

for a in *.txt; do grep target $a >$a.out; done 
+0

感谢很多快速回复:-) – 2009-11-25 21:37:20

1

只是一个gawk的命令

gawk '/target/ {print $0 > FILENAME".out"}' *.txt 
0

,你可以只使用外壳,无需外部命令

for file in *.txt 
do 
    while read -r line 
    do 
     case "$line" in 
      *pattern*) echo $line >> "${file%.txt}.out";; 
     esac 
    done < "$file" 
done