几个正则的写法
没用过正则,最近在实现一个需求时需要使用到
rpm的打包文件 spec
内容:
%install
mkdir -p .%{_prefix}/algo
cp -r $OLDPWD/../*.sh .%{_prefix}/algo
%clean
rm -rf $RPM_BUILD_ROOT
rm -rf $RPM_BUILD_DIR/%{name}-%{version}
%files
%defattr(0755,admin,admin)
%config(noreplace) %{_prefix}/algo/.user.ini
%changelog
clean可能没有,changelog也可能是没有配置的
需要获取
目前将文件所有内容读入为一个字符串
1.%install之后到下一个配置项之间的所有内容
2.%config之后到下一个配置项的所有内容【可能后面无配置项,也可能有。且如上可能出现在同一行,也可能有多行的情况】
遇到困难点在于,配置项可能是缺失的,也可能存在,配置内容中也存在%
这两个正则怎么处理,有木有什么更好的处理方式?求教
------解决方案--------------------
配置项可以用^%.*\>匹配
^行首
$行尾
\<词首
\>词尾
1. ^%install\>\(.*\)^%.*\>
------解决方案--------------------
Assembly code
sed '/^%install/,/^%/!d' urfile | sed '$d'