在perl中运行awk命令

use*_*713 2 perl awk

我有一个制表符分隔文件(虚拟),如下所示:

a  b
a  b 
a  c
a  c
a  b
Run Code Online (Sandbox Code Playgroud)

我正在尝试awk在perl脚本中编写一个命令,其中正在生成file.txt.

awk命令:

$n=system(" awk -F"\t" '{if($1=="a" && $2=="b") print $1,$2}' file.txt|wc -l ")

Error :
comparison operator :error in '==' , ',' between $1 and $2 in print }'
Run Code Online (Sandbox Code Playgroud)

awk脚本在命令行上正常运行,但在脚本内部运行时出错.

我在awk命令中看不到任何语法错误.

dev*_*ull 5

除了你想通过awk从内部执行什么实现perl(因为它可以使用后者本身完成),你可以使用q运算符:

$cmd = q(awk -F"\t" '{if($1=="a" && $2=="b") print $1,$2}' file.txt | wc -l);
$n = system($cmd);
Run Code Online (Sandbox Code Playgroud)

请注意,使用双引号会插入变量,您需要转义它们.