grep-ing多个文件

时间:2009-11-25 21:30:19

标签: bash scripting

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

3 个答案:

答案 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