我有一小段c代码,应该在我的linux机器上运行awk命令。然而,对于我的生活,它不会执行。如果我直接在终端中运行它,awk就可以工作。
我当前失败的命令
system("awk '{ printf \"%d \n\", $12 }' results.dat | sort -n");
失败了
awk: { printf "%d
awk: ^ unterminated string
你如何逃避双引号以便命令运行?另外为什么会失败,但当我用printf替换系统调用时会打印?
答案 0 :(得分:8)
也许你应该再次逃离\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