Linuxコマンドの組合せ--make allコンパイルエラー情報をパイプ出力に再配置

4138 ワード

1.コマンド
leon$ make clean && make all  2>&1 | grep "error"
2016-10-10 18:49:36 (nvc-communication)==>|| INFO : Clean project nvc-communication ...
rm -rf ./build/objs/* ./build/lib/* ./build/bin/*
2016-10-10 18:49:36 (nvc-communication)==>|| INFO : Clean project nvc-communication success!
src/network/misc/nv_net_udp.c:17: fatal error: nv_net_tools.h: No such file or directory

2.拡張コマンド
leon$ make clean && make all  2>&1 | grep "error" | xargs | sed -r 's/.*error\:(.*)\:.*/\1/' | sed s/[[:space:]]//g 
2016-10-10 18:51:44 (nvc-communication)==>|| INFO : Clean project nvc-communication ...
rm -rf ./build/objs/* ./build/lib/* ./build/bin/*
2016-10-10 18:51:44 (nvc-communication)==>|| INFO : Clean project nvc-communication success!
    :

nv_net_tools.h

3.結果のエスケープ
leon$  make clean && make all  2>&1 | grep "error" | xargs | sed -r 's/.*error\:(.*)\:.*/\1/' | sed s/[[:space:]]//g | sed 's/\./\\\./g'
2016-10-10 18:52:58 (nvc-communication)==>|| INFO : Clean project nvc-communication ...
rm -rf ./build/objs/* ./build/lib/* ./build/bin/*
2016-10-10 18:52:58 (nvc-communication)==>|| INFO : Clean project nvc-communication success!
    :
nv_net_tools\.h

4.究極の命令(実験は成功しなかった)
期待:コンパイルで発生したエラーを解決します.
for i in `find ./src/network -maxdepth 3 -type f | grep "\.c"`; do sed -i '/'$(make clean && make all  2>&1 | grep "error" | xargs | sed -r 's/.*error\:(.*)\:.*/\1/' | sed s/[[:space:]]//g | sed 's/\./\\\./g')'//d' $i ; done