While loop 从目录中生成单个输出的所有文件中查找模式
我试图从文件夹中的所有*.txt文件中找到模式,这些文件是一行中的数字列表。我想在一个文件中找到包含这些数字的行,这个文件包含了一大堆*.vcf格式的东西。不同的列表必须生成不同的输出文件,显示类似file.output的内容。 我已经试过了,但是不起作用(对不起,我是新手),也许我可以用awk或者其他更奇特的东西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
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个图案。您希望输出文件包含什么?来自您的输入和希望输出的样本将很有帮助。如果您提供样本输入和预期输出,则提供答案会更容易。