曲径通幽论坛

标题: 使用 d 命令进行删除操作 [打印本页]

作者: beyes    时间: 2012-1-19 01:26
标题: 使用 d 命令进行删除操作
删除操作使用 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 。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2