1

以下行

FILE *fp=popen("ls -h --full-time | awk '{printf \" %-70s%-10s%-20s%-30s\n \", $9,$5,$6,$7}' ","r");

给出错误

awk:第 1 行:失控字符串常量“%-70s%-10....

我也试过

FILE *fp=popen("ls -h --full-time | awk \'{printf \" %-70s%-10s%-20s%-30s\n \", $9,$5,$6,$7}\' ","r");

还是同样的错误。

我知道它与引号有关。只是我无法弄清楚到底是什么。如何摆脱错误?谢谢。

4

1 回答 1

3

你的意思是awk解释你的\n,但实际上它被你的 C 编译器解释为文字换行符。这就是为什么 awk 会看到一个失控的字符串——因为当你到达那里时,它是一个文字换行符。

您应该\\n在原始字符串中使用。

于 2013-04-03T05:17:23.253 回答