Linux批量替换某种类型文件中的字符串-sed和grep命令使用

雪域迷影 2013-05-13 11:00:05
今天在进行修改rpm打包时需要修改目录下的100个软件包对应的spec文件,以便将源代码打包成rpm二进制包***.rpm和rpm二进制源代码包***.src.rpm。需要将某个目录下的所有spec文件中的Release: 1一行中的发布版本号1替换成%{_release},其中%{_release}是系统中配置的一个宏变量。
我使用的命令是:
sed -i "s/Release:    1/Release:    %{_release}/g" 'grep Release:    1 -rl --include="*.spec" ./'  

以上的脚本不好使。
我知道Linux批量替换多个文件中字符串的常见命令是:
sed -i "s/oldString/newString/g" `grep oldString -rl /path`
例如:我要把mahuinan替换为huinanma,执行命令:sed -i "s/mahuinan/huinanma/g" 'grep mahuinan -rl /www'
请问我的脚本该怎么写才能实现需求呢。
...全文
142 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧