找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 17534|回复: 11

[问题求助] sed替换指定数字开头的行的问题

[复制链接]
发表于 2019-7-4 15:18:55 | 显示全部楼层 |阅读模式
# 文本的内容如下:

专辑: 玻璃 EP
歌手: 朱茵
发行时间: 1997年03月
语言: 粤语

01.玻璃
02.某种感觉
03.想见他
04.巨蟹与天蝎
05.玻璃 (深情版)
09火65.巴荔
9879.的心


本意是显示是删除
下面5行内容,

01.玻璃
02.某种感觉
03.想见他
04.巨蟹与天蝎
05.玻璃 (深情版)


sed -i '/^[0-9]\{1,2\}\./d' jie.txt  

# 这个命令在CentOS 7可以通过,
# 测试环境windows控制台,msys 1.0,
# 这行命令无法通过
# 网上搜索的结果是里面有字符需要转义,但具体不知道如何修改。
# sed的版本是4.3
 楼主| 发表于 2019-7-2 12:58:06 | 显示全部楼层

sed替换指定数字开头的行的问题

这个文本,

专辑: 玻璃 EP
歌手: 朱茵
发行时间: 1997年03月
语言: 粤语

01.玻璃
02.某种感觉
03.想见他
04.巨蟹与天蝎
05.玻璃 (深情版)
09火65.巴荔
9879.的心

我执行下面的命令
sed -i /^[0-9]{1,2}.*/d jie.txt

文本并没有替换掉。我的本意是显示是删除
下面5行内容,

01.玻璃
02.某种感觉
03.想见他
04.巨蟹与天蝎
05.玻璃 (深情版)
发表于 2019-7-2 13:16:58 | 显示全部楼层
  1. $ sed -E -i '/^[0-9]{1,2}\./d' jie.txt

  2. 专辑: 玻璃 EP
  3. 歌手: 朱茵
  4. 发行时间: 1997年03月
  5. 语言: 粤语

  6. 09火65.巴荔
  7. 9879.的心
复制代码
发表于 2019-7-2 15:57:06 | 显示全部楼层
如果不使用 -E 那么需要对花括号进行转义:
  1. sed -i '/^[0-9]\{1,2\}\./d' jie.txt
复制代码
 楼主| 发表于 2019-7-2 19:19:38 | 显示全部楼层
回复 3# Batcher


sed -i /^[0-9]\{1,2\}\./d jie.txt

cat jie.txt

专辑: 玻璃 EP
歌手: 朱茵
语言: 粤语

这是这个脚本的执行结果。
发表于 2019-7-2 19:47:35 | 显示全部楼层
回复 4# netdzb


    2楼的命令能得到你想要的结果吗?
 楼主| 发表于 2019-7-2 20:03:21 | 显示全部楼层
回复 5# Batcher

2楼的可以。
发表于 2019-7-3 08:44:14 | 显示全部楼层
回复 4# netdzb


    我这边CentOS 7测试没有问题,可能是你的环境比较特殊吧。
 楼主| 发表于 2019-7-3 16:26:44 | 显示全部楼层
回复 7# Batcher

好的,我去虚拟机测试一下。
 楼主| 发表于 2019-7-4 14:44:01 | 显示全部楼层
回复 7# Batcher

我刚用了本坛的sed 4.3还是不行,测试环境windows控制台,msys 1.0。
好像是里面的分割符号需要转义。
发表于 2019-7-4 16:15:38 | 显示全部楼层
回复 9# netdzb


我这边 Win10 CMD 测试未见异常

C:\Test>type 1.txt
专辑: 玻璃 EP
歌手: 朱茵
发行时间: 1997年03月
语言: 粤语

01.玻璃
02.某种感觉
03.想见他
04.巨蟹与天蝎
05.玻璃 (深情版)
09火65.巴荔
9879.的心

C:\Test>sed -i "/^[0-9]\{1,2\}\./d" 1.txt

C:\Test>type 1.txt
专辑: 玻璃 EP
歌手: 朱茵
发行时间: 1997年03月
语言: 粤语

09火65.巴荔
9879.的心

C:\Test>sed --version
sed (GNU sed) 4.2.2
 楼主| 发表于 2019-7-4 16:22:32 | 显示全部楼层
回复 10# Batcher

sed -i "/^[0-9]\{1,2\}\./d" 1.txt
         ~~
        原来这里是要引号的,我这里也通过了啊。

sed -i "/^[0-9]\{1,2\}\./d" yrz.txt
cat yrz.txt

专辑: 玻璃 EP
歌手: 朱茵
发行时间: 1997年03月
语言: 粤语

09火65.巴荔
9879.的心

现在可以了,谢谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 22:24 , Processed in 0.023909 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表