While loop 从目录中生成单个输出的所有文件中查找模式

While loop 从目录中生成单个输出的所有文件中查找模式,while-loop,grep,While Loop,Grep,我试图从文件夹中的所有*.txt文件中找到模式,这些文件是一行中的数字列表。我想在一个文件中找到包含这些数字的行,这个文件包含了一大堆*.vcf格式的东西。不同的列表必须生成不同的输出文件,显示类似file.output的内容。 我已经试过了,但是不起作用(对不起,我是新手),也许我可以用awk或者其他更奇特的东西 for file in ./*.txt do cat $file|while read LINE do grep "$LINE" ./AC-A

我试图从文件夹中的所有*.txt文件中找到模式,这些文件是一行中的数字列表。我想在一个文件中找到包含这些数字的行,这个文件包含了一大堆*.vcf格式的东西。不同的列表必须生成不同的输出文件,显示类似file.output的内容。 我已经试过了,但是不起作用(对不起,我是新手),也许我可以用awk或者其他更奇特的东西

    for file in ./*.txt
    do
    cat $file|while read LINE
    do
    grep "$LINE" ./AC-AN-table.v2.vcf > "$file.output"
    done

我会这样做:

ls *.txt | perl -nle 'system("grep -f $_ ./AC-AN-table.v2.vcf > $_.output");
说明: perl-nle在输入上循环,并在每个循环中执行指定的perl表达式。更多信息请访问,但简而言之:

  -n : loop over input without autoprinting
  -l : modify line endings
  -e : expression to execute

grep的
-f
选项提供了一个文件,其中包含要搜索的模式列表。每行1个图案。

您希望输出文件包含什么?来自您的输入和希望输出的样本将很有帮助。如果您提供样本输入和预期输出,则提供答案会更容易。