我想打开标识符列表并在另一个文件中查找匹配项。为此,我使用grep作为带有每个脚本的系统函数。但我不知道我哪里出错了。你能帮我解决一下语法吗?谢谢你的时间!
open F, "$ARGV[0]" or die;
while(<F>)
{
`grep -A1 "$_" CAM_PROJ_BATS.read.fa > $_.txt`;
}
答案 0 :(得分:2)
如果您期望输出,则不会看到任何输出,因为您没有打印任何内容。添加print语句以查看输出。 (您可能不需要查看输出,但至少它会帮助您查看grep命令的错误。)
此外,输入文件的行最后会有换行符。你可能不想把它传递给grep。实际上,添加换行符甚至可能会破坏shell上命令的执行。使用chomp
删除换行符。
use strict;
use warnings;
open F, "$ARGV[0]" or die "Can't open file: $!";
while(<F>)
{
chomp;
print `grep -A1 "$_" CAM_PROJ_BATS.read.fa > $_.txt`;
}
(未经测试,因为我没有grep)。