-3

我想打开一个标识符列表并在另一个文件中查找匹配项。为此,我使用 grep 作为每个脚本的系统函数。但我不确定我哪里出错了。你能帮我看看语法吗?感谢您的时间!

open F, "$ARGV[0]" or die;
while(<F>)
{
    `grep -A1 "$_" CAM_PROJ_BATS.read.fa > $_.txt`;
} 
4

1 回答 1

2

如果您期待输出,您将看不到任何输出,因为您没有打印任何内容。添加打印语句以查看输出。(您可能不需要查看输出,但至少它会帮助您查看 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)。

于 2012-10-19T15:03:13.570 回答