我有一小段c代码,应该在我的linux机器上运行awk命令.然而,对于我的生活,它不会执行.如果我直接在终端中运行它,awk就可以工作.
我当前失败的命令
system("awk '{ printf \"%d \n\", $12 }' results.dat | sort -n");
Run Code Online (Sandbox Code Playgroud)
它失败了
awk: { printf "%d
awk: ^ unterminated string
Run Code Online (Sandbox Code Playgroud)
你怎么逃避双引号,以便命令运行?另外为什么会失败,但是当我用printf替换系统调用时它会打印出来?
也许你应该\n再次逃脱,如同
system("awk '{ printf \"%d \\n\", $12 }' results.dat | sort -n");
// ^ note the extra \
Run Code Online (Sandbox Code Playgroud)
因为我认为\n它应该成为其中的一部分printf.
你当前的构造调用system带有一个参数
awk '{ printf "%d
", $12 }' results.dat | sort -n
Run Code Online (Sandbox Code Playgroud)