正则宏替换

旧城冷巷雨未停 提交于 2019-11-27 04:13:38

find ./ -name .c -exec grep -E '^\s#if|^\s*#elif' {} ; > ./tmp
找宏

cat ./tmp | grep -E '^\s#[^\\/]+' -o >> ./tmp2
找各行#后面不是接//注释的
cat ./tmp | grep -E '^\s
#[^\\/]+' -o | sed -r 's!&&|||!\n!g' >> ./tmp3
使用!代替/进行替换,但要转义||

cat ./tmp | grep -E '^\s#[^\\/]+' -o | sed -r 's!&&|||!\n!g' | sed -r 's!#
[a-z]+ | defined | \( |\) | \s+ | ! | [0-9]
\s* (> | < | = | <= | >= | ==)
\s[0-9] | \s* | "!g'

cat ./tmp3 | sed -r 's! #[a-z]+ | defined | \( | \) | \s+ | ! | [0-9]\s
(> | < | = | <= | >= | ==)\s[0-9] | \s* | " !!g ' >> ./tmp4

cat ./tmp4 | sed -r '/^(0|1)?$$/d' >> ./tmp5
cat ./tmp5 | sort -u >> ./tmp6
cat ./tmp6 | sed -r 's/(.*)/-U\1/g' >> ./defined.all

echo $(CFLAGS) | sed -r 's/(-[a-zA-Z]) / \n\1 /g' >>./tmp7

cat ./tmp7 | grep -E '(-D|-U).*' -o >>./tmp8

cat ./tmp8 | sed -r 's/=.*|\s+//g' > ./defined;

rm ./tmp*;

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!