曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 4410|回复: 0
打印 上一主题 下一主题

使用 d 命令进行删除操作

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
跳转到指定楼层
楼主
发表于 2012-1-19 01:26:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
删除操作使用 d 命令,基本的删除操作也基于地址和匹配(一般情况下,地址和匹配并不是很严格区分,可认为一个匹配就是一个地址,习惯上将行号当成是一个地址,而一行中的某个单词,适合于部分内容的正则表达式被认为是匹配)。

删除操作语法:
sed 'ADDRESS'd filename

sed /PATTERN/d filename

在 《几种常用模式匹配(打印行) 》里介绍的打印地址和匹配样式语法形式同样适合于删除操作。

测试文本内容如下:
$ cat temp.txt
1. Linux - Sysadmin, Scripting etc.
2. Databases - Oracle, mySQL etc.
3. Hardware
4. Security (Firewall, Network, Online Security etc)
5. Storage
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)
8. Website Design
9. Software Development
10.Windows- Sysadmin, reboot etc.

测试一:'Nd' 删除某行
> sed '5d' temp.txt
1. Linux - Sysadmin, Scripting etc.
2. Databases - Oracle, mySQL etc.
3. Hardware
4. Security (Firewall, Network, Online Security etc)
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)
8. Website Design
9. Software Development
10.Windows- Sysadmin, reboot etc.

测试二:删除某行及间隔一定宽度的行
sed '3~2d' temp.txt
1. Linux - Sysadmin, Scripting etc.
2. Databases - Oracle, mySQL etc.
4. Security (Firewall, Network, Online Security etc)
6. Cool gadgets and websites
8. Website Design
10.Windows- Sysadmin, reboot etc.

测试三:删除某个范围内连续的行
sed '3,9d' temp.txt
1. Linux - Sysadmin, Scripting etc.
2. Databases - Oracle, mySQL etc.
10.Windows- Sysadmin, reboot etc.

测试四:删除最后一行
sed '$d' temp.txt
1. Linux - Sysadmin, Scripting etc.
2. Databases - Oracle, mySQL etc.
3. Hardware
4. Security (Firewall, Network, Online Security etc)
5. Storage
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)
8. Website Design
9. Software Development


测试五:删除匹配行
sed '/Hardware/d' temp.txt
1. Linux - Sysadmin, Scripting etc.
2. Databases - Oracle, mySQL etc.
4. Security (Firewall, Network, Online Security etc)
5. Storage
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)
8. Website Design
9. Software Development
10.Windows- Sysadmin, reboot etc.

测试六:删除从匹配行到最后一行
sed '/Network/,$d' temp.txt
1. Linux - Sysadmin, Scripting etc.
2. Databases - Oracle, mySQL etc.
3. Hardware

测试七:删除匹配行及跟随指定的 N 行
sed '/Databases/,+3d' temp.txt
1. Linux - Sysadmin, Scripting etc.
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)
8. Website Design
9. Software Development
10.Windows- Sysadmin, reboot etc.

测试八:删除空行
空行的表达式为 ‘^$’,删除一个文件中的所有空行可以 sed '/^$/d' filename 。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-3 23:20 , Processed in 0.076407 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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