我有一小段 c 代码应该在我的 linux 机器上运行 awk 命令。然而,对于我来说,它不会执行。如果我直接在终端中运行 awk,它就会工作。
我当前失败的命令
system("awk '{ printf \"%d \n\", $12 }' results.dat | sort -n");
它失败了
awk: { printf "%d
awk: ^ unterminated string
您还如何转义双引号以便命令运行?另外为什么会失败,但是当我用 printf 替换系统调用时它会打印出来?
最佳答案
也许你应该再次转义\n
,如
system("awk '{ printf \"%d \\n\", $12 }' results.dat | sort -n");
// ^ note the extra \
因为我认为 \n
是 printf
的一部分。
您当前的构造调用 system
,参数为
awk '{ printf "%d
", $12 }' results.dat | sort -n
关于C system() 调用失败,错误为 "unterminated string",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/645423/