2013-08-06 47 views
0

我正在寫一個C程序在Linux中運行。 下面有兩個命令可以運行,但其中一個命令失敗。我認爲第二個失敗的原因是我使用了「如果」。 但我可以在shell中成功運行awk本身。爲什麼它在這個C程序中不起作用?你可以看到,command14運行良好,但通訊不是。 謝謝!C發送awk腳本到Linux

char* command14="cat /var/log/messages | egrep error | awk '{print $1,$2}'| sort|uniq -c |  awk '{print $1,$2,$3}'>> data14"; 
    system(command14);  
char* comm="awk '{if($2=="Aug"){print $1,8,$3}}' data14>>key14.txt"; 
system(comm); 
+1

你可能需要一些逃避這些字符在你的命令。 http://www.lix.polytechnique.fr/~liberti/public/computing/prog/c/C/FUNCTIONS/escape.html – jmathew

+0

非常感謝!我剛纔加了\然後它工作!!!再次感謝!! –

+0

哦,什麼jmatthew說.... – Jiminion

回答

3
char* comm="awk \'{if($2==\"Aug\"){print $1,8,$3}}\' data14>>key14.txt"; 
+1

吉姆,謝謝你一樣!! –

+0

我不知道是否需要,可能不是 – Jiminion

+0

似乎\對於那個部分是可以的,謝謝! –