代码之家  ›  专栏  ›  技术社区  ›  Sharat Chandra

合并多个文件

  •  2
  • Sharat Chandra  · 技术社区  · 16 年前

    我想在一个目录中对多个文件进行grep,并将每个grep的输出收集到一个单独的文件中。因此,如果我对20个文件进行grep,我应该得到20个包含搜索项的输出文件。有人能帮我吗?谢谢。

    3 回复  |  直到 16 年前
        1
  •  8
  •   Greg Hewgill    16 年前

    使用A for 声明:

    for a in *.txt; do grep target $a >$a.out; done
    
        2
  •  1
  •   ghostdog74    16 年前

    只有一个gawk命令

    gawk '/target/ {print $0 > FILENAME".out"}' *.txt
    
        3
  •  0
  •   ghostdog74    16 年前

    您可以只使用shell,不需要外部命令

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