免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 9758 | 回复: 10
打印 上一主题 下一主题

[文本处理] sed中的分隔符 [复制链接]

论坛徽章:
2
摩羯座
日期:2014-11-03 15:28:56卯兔
日期:2015-01-04 17:20:51
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-09-16 15:24 |只看该作者 |倒序浏览
本帖最后由 bulletmarquis 于 2014-09-16 15:25 编辑

假设我的crontab导至文件中后,内容如下:
  1. 0 * * * * /home/test/task/aa.sh
  2. 0 * * * * /home/test/bin/aa.sh
  3. 0 * * * * /home/test/task/bb.sh
  4. 0 * * * * /home/test/bin/bb.sh
复制代码
请大神们指点一下
如何能用sed将其中/home/test/bin/aa.sh这行给删了?(只能用sed,不能用类似grep -v的方法)

文件排序未知,定时任务中的脚本,有可能是不同目录下的同名shell,但不考虑脚本的参数

如果只是部分文本的替换,可以使用类似下面的语法
  1. sed 's#/home/test/task/#abc/#g'
复制代码
但是我删除的时候却无效(改用冒号或者其他符号间隔也不行)
  1. sed '#/home/test/bin/aa.sh#d'
复制代码
这种文本中自带/的匹配,该如何处理呢?

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
2 [报告]
发表于 2014-09-16 15:38 |只看该作者
  1. sed '/\/home\/test\/bin\/aa.sh/d' a.txt
复制代码

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
3 [报告]
发表于 2014-09-16 15:39 |只看该作者
回复 1# bulletmarquis


sed '\#/home/test/bin/aa.sh#d'

论坛徽章:
2
摩羯座
日期:2014-11-03 15:28:56卯兔
日期:2015-01-04 17:20:51
4 [报告]
发表于 2014-09-16 15:59 |只看该作者
回复 2# Shell_HAT


谢谢指点
不过用转义符会很麻烦,我在升级脚本里面,待匹配的字符实际是放在变量里面的,所以最后使用的语法是类似下面这种的
  1. sed -i "s#$src#$dest#g" file
复制代码
这种情况下,如果要使用转义符,还需要先在$src或$dest变量增加转义符,写起来太麻烦了,而且看的也很痛苦。。。

论坛徽章:
2
摩羯座
日期:2014-11-03 15:28:56卯兔
日期:2015-01-04 17:20:51
5 [报告]
发表于 2014-09-16 16:01 |只看该作者
回复 3# ly5066113


    果然可用!太好了,谢谢大神指点

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
6 [报告]
发表于 2014-09-16 16:22 |只看该作者
回复 3# ly5066113


    学习了,还可以这样用,第一次离Tim大师这么近..

论坛徽章:
3
丑牛
日期:2014-09-13 18:19:22摩羯座
日期:2014-10-10 17:43:02水瓶座
日期:2014-10-16 01:00:22
7 [报告]
发表于 2014-09-16 21:38 |只看该作者
TIM大师的用法好像在饭醉团伙的awk+sed的那本书的一个简单sed调试工具代码里面用到过,但是似乎这样写有的时候会出问题,在学习的时候亲自测试过,六子师傅亲测检验下

回复 6# reyleon


   

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
8 [报告]
发表于 2014-09-16 23:32 |只看该作者
回复 7# 李满满


    人品问题?

论坛徽章:
3
丑牛
日期:2014-09-13 18:19:22摩羯座
日期:2014-10-10 17:43:02水瓶座
日期:2014-10-16 01:00:22
9 [报告]
发表于 2014-09-17 21:19 |只看该作者
估计是...最近人品一直爆发~回复 8# blackold


   

论坛徽章:
2
处女座
日期:2014-10-24 11:12:372015年辞旧岁徽章
日期:2015-03-03 16:54:15
10 [报告]
发表于 2014-09-17 22:20 |只看该作者
双引号和单引号的区别:双引号中的可以有命令和变量替换;单引号无。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP