以下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解释器?
答案 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" ## ?