例如,考虑文件“abc.txt”具有以下内容:
#--------------- Module Id ---------------
MODULE_ID='ACXX'
MODULE_ID='BCXX'
MODULE_ID='CCXX'
现在,我想在该文件中搜索“MODULE_ID”关键字,如果找到,则应在该引号中打印值,即"1"
。
我可以在Linux中知道如何做到这一点吗?
我尝试了以下但未能成功:
grep -o 'MODULE_ID='[^']*'' uk.spec > results.txt
grep -Po 'MODULE_ID="\K.*?(?=")' uk.spec
perl -ne 'if(m/MODULE_ID="(.*?)"/){ print $1 . "\n"; }'
答案 0 :(得分:0)
试试这个:
open my $fh, "<", "file.txt" or die $!;
while (<$fh>)
{
chomp;
if (m/^MODULE_ID='(.*)'/)
{
print qq{"$1"}, "\n";
}
}
____DATA____
MODULE_ID='ACXX'
MODULE_ID='BCXX'
MODULE_ID='CCXX'
输出:
"ACXX"
"BCXX"
"CCXX"
答案 1 :(得分:-2)
一个简单的Perl解决方案:
#/usr/bin/perl -ne
chomp $_; if($_ =~ /MODULE_ID=(.*)/) { print "$1\n"; }
这可以作为shell one-liner运行:
perl -ne 'chomp $_; if($_ =~ /MODULE_ID=(.*)/) { print "$1\n"; }' abc.txt