2013-01-19 57 views
1

我想從gcc/g ++編譯錯誤消息中刪除文件名。從gcc/g ++中刪除文件名編譯結果

當我運行gcc myfolder/temp.c,結果是:

myfolder/temp.c:5:1: error: unknown type name ‘voi’ 
myfolder/temp.c:87:6: error: conflicting types for ‘max’ 
myfolder/temp.c:5:5: note: previous declaration of ‘max’ was here 

但我想這一點:

5:1: error: unknown type name ‘voi’ 
87:6: error: conflicting types for ‘max’ 
5:5: note: previous declaration of ‘max’ was here 

是否有gcc的標誌是什麼?

回答

3

我懷疑是否有這樣的選項,但是使用標準實用程序可以達到相同的結果。比如用cut(1)

gcc -c myfolder/temp.c 2>&1 | cut -d: -f2- 
+0

謝謝。 現在我想把行數減少兩位。我想將以上結果更改爲: '3:1:錯誤:未知類型名稱'voi' 85:6:錯誤:'max'衝突類型 3:5:注意:'max'的先前聲明在此處' 我該怎麼做? – Random

+0

@MJNaderi需要幾個操作:行分割,算術運算和級聯,對於標準的管道過濾器來說太多了,但是幾行'perl'或'awk'腳本就可以做到這一點。例如。 'awk -F:'/^[^:] +:[1-9] [0-9] *:/ {printf(「%d」,$ 2 + 2); for(i = 3; i <= NF; i ++){printf(「:%s」,$ i);} printf(「\ n」); }'' –

+0

謝謝!它解決了我的問題。 :) – Random