免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2096 | 回复: 7

[文本处理] BASH 练习批量指定文件在指文件替换 请教。 [复制链接]

论坛徽章:
0
发表于 2012-11-03 22:00 |显示全部楼层
BASH 练习批量指定文件在指文件替换

目的,有一批PHP的函数,因为开始没有定义大小写问题,所以都以首字母大小为编写习惯,如Add_User()之类的,现在是统一改为全小写。
计划分几个部分,
一,        先抽取所有的文件出来,做一个修改清单
二,        把所有的大小写,统一改为小写字母,做一个修改结果清单
三,        合并个修改清单和修改结果
四,        打开每一个文件,找到相应的字段进行替换。
五,        验证结果

之前的都不难,就是到了第四步,不知道如何下手,请大大位,给一个方向,谢谢~

论坛徽章:
0
发表于 2012-11-03 22:04 |显示全部楼层
2.3 基本sed编辑命令

    sed编辑命令
    p 打印匹配行
    = 显示文件行号
    a \ 在定位行号后附加新文本信息
    i \ 在定位行号后插入新文本信息
    d 删除定位行
    c \ 用新文本替换定位文本
这个C适合我用吗?

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-12-16 06:20:00
发表于 2012-11-03 22:56 |显示全部楼层
用脚本 for i in $(ls .)
然后对$i,也就是每一个文件用sed,这样可以么?

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-12-16 06:20:00
发表于 2012-11-03 22:57 |显示全部楼层
替换是不是感觉用s更好一点?回复 2# jd_chen_cu


   

论坛徽章:
0
发表于 2012-11-03 23:06 |显示全部楼层
回复 4# nathanielwen
如果按你说的,还有做一个,每一次,修改成功之后就是删了,本操作的,会好一点,应该这样就是比较好的方案了。

   

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-12-16 06:20:00
发表于 2012-11-04 00:58 |显示全部楼层
不好意思啊,你说的我没太明白。你是说sed不能修改源文件么还是别的?如果是的话,重定向一下就好了吧。回复 5# jd_chen_cu


   

论坛徽章:
1
辰龙
日期:2014-05-22 11:38:58
发表于 2012-11-04 11:48 |显示全部楼层
本帖最后由 winway1988 于 2012-11-04 11:51 编辑
一,        先抽取所有的文件出来,做一个修改清单


我想知道有什么好方法来识别是否为php函数名?
  1. $ for f in $file
  2. > do
  3. > while read old new
  4. > do
  5. > sed -i "s/$old/$new/g" $f
  6. > done <./urfile
  7. > done
复制代码

论坛徽章:
0
发表于 2012-11-04 20:54 |显示全部楼层
回复 7# winway1988


    grep "public function "
我是这样子做的,呵呵,有更好的,麻烦,共享一下。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP