解析gcc错误日志

时间:2013-08-02 16:43:12

标签: shell unix sed awk

我目前正在解析gcc的错误日志

main.c:5:1: warning: data definition has no type or storage class [enabled by default]
main.c:8:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
main.c in function 'TryAdddition()'
main.c:24:1: warning: data definition has no type or storage class [enabled by default]
main.c:24:10: warning: data definition has no type or storage class [enabled by default] 

5,8,24,24是发生错误或警告的行号。 我需要用数字+ 10 替换这些数字,即: 15,18,34,34

但并非每条线都是错误或警告线。

1 个答案:

答案 0 :(得分:5)

我会说awk是这项工作的好工具。要将更改仅应用于errorwarning行:

$ awk '$4==" warning" || $4==" error"{$2+=10}1' FS=':' OFS=':' file
main.c:15:1: warning: data definition has no type or storage class [enabled by default]
main.c:18:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
main.c in function 'TryAdddition()'
main.c:34:1: warning: data definition has no type or storage class [enabled by default]
main.c:34:10: warning: data definition has no type or storage class [enabled by default