Linux命令组合 -- 将make all 编译错误信息重定位到管道输出

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

你可能感兴趣的:(Linux,命令)