例子1
去掉宏定义前面的#define和后面的内容,只留下宏的名字
grep DYNA_PARAM plat.h |sed 's/#define[ ]*//g'|sed 's/[ ][^$]*//g' > a
例子2
搜索带有set_para和get_para的宏
我们拿到了a,里面全是各种宏,需要逐个搜索和输出结果
本着事情一步一步来的原则,我们先实现一个单个宏搜索和输出的程序
#!/bin/bash
grep $1 -r mmr|awk '$0~/set_para/{m[0]++;m[3]=$0} $0~/remove_para/{m[1]++;} END{if(m[0]>0 && m[1]>0) print m[0], m[1], m[3]}'
然后再逐个搜索和输出
cat ~/a|xargs -I {} ./a.sh {}
例子3
查看项目中代码行数
find . -name "*.h" -o -name "*.cpp" -o -name "*.c" -o -name "*.cc" -o -name "*.hpp"|xargs wc -l|sort