在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4311|回复: 7

[求助] 请问如何用perl或者tcl进行批量文件中的字符串的替换

[复制链接]
发表于 2015-2-2 16:32:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 stone101 于 2015-2-2 16:41 编辑

现在需要在linux系统下对一批文件进行批处理,就是挨个对每个文件打开,替换其中的某些字符串,然后保存。
具体替换的内容为:
空格N空格  替换为 空格N18空格
空格P空格   替换为 空格P18空格
空格DN空格 替换为 空格NDIO18空格

因为打空格看不见所以用汉字写出来了
发表于 2015-2-3 00:22:52 | 显示全部楼层
本帖最后由 nicklee523 于 2015-2-3 00:26 编辑

如果你的这批文件都在同一个路径下,又有类似的文件名以便wildcard匹配(假设都叫 NP*.txt)
那把几个sed指令写进一个shell script就可以了:



  1. #!/usr/bin/csh
  2. sed -i "s/ N / N18 /g" NP*.txt
  3. sed -i "s/ P / P18 /g" NP*.txt
  4. sed -i "s/ DN / NDIO18 /g" NP*.txt


复制代码

也可以在每个-i后面加一个后缀名作为backup,如 sed -i.bk xxxxxx
 楼主| 发表于 2015-2-4 10:44:29 | 显示全部楼层
回复 2# nicklee523


   谢谢啦,文件名字比较接近,都是*.cdl
 楼主| 发表于 2015-2-4 10:49:40 | 显示全部楼层
回复 2# nicklee523


   请问这个shell 如何使用呢,是写在一个文本里面,然后在terminal里面用csh命令调用吗?还是用source命令调用呢
 楼主| 发表于 2015-2-4 11:36:40 | 显示全部楼层
回复 2# nicklee523


   已经弄好了,会用了,谢谢啦
发表于 2015-2-4 23:15:37 | 显示全部楼层
回复 5# stone101


    恩。第一行的意思就是告诉它用cshell执行。
你也可以给这个script添加可执行的权限,再把它丢到一个$PATH里定义的路径下。然后直接输名字就可以执行了
发表于 2015-6-3 23:24:23 | 显示全部楼层




   请问sed是什么意思? 小骆驼书里第几章讲它 我没找到
发表于 2015-9-22 22:28:00 | 显示全部楼层
回复 7# xwwwjy


   那个脚本是 shell script, 不是 perl script
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-18 23:24 , Processed in 0.020283 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表