如何从正在运行的Node脚本中将参数传递给awk命令?

时间:2015-12-14 08:44:29

标签: javascript node.js bash awk child-process

以下Javascript代码未正确传递命令字符串:

cp = require("child_process");
var command = "awk < " + mypath + "\" \$3 ~ \"^rs\" {print \$3}\""
cp.exec(command, function (err, stdout, stderr) {});

是否有更合适的Node包或Javascript解决方法,用于将引号和美元符号传递给在Node中使用child_process时在Bash环境中调用的Awk解释器?

2 个答案:

答案 0 :(得分:2)

有一个native-Node awk package,请考虑使用它。

答案 1 :(得分:0)

嗯,如果我正确读到这个:

&#34; awk&lt; &#34; + mypath +&#34; \&#34; \ $ 3~ \&#34; ^ rs \&#34; {print \ $ 3} \&#34;&#34;

它表明您的参数顺序可能需要调整,即从简单的awk开始:

awk '{print $0}' /some_file # print each line 

采取上述(不清楚),但你的意思是:

awk '/^rs/ {print $3}' /some_file ##  

#每行以&#39; rs&#39;开头打印第3个变量?

也许是这样的:

好的,修改了一下;由于我不熟悉您从&#39;调用的解决方案,因此您需要适当调整。

"awk '/^rs/{print \$3}'" + "mypath"  ## ?

或者,也许(不确定你是否需要逃避3美元):

"awk '/^rs/{print $3}'" + "mypath"  ## ?