曲径通幽论坛

标题: 几种范围模式:'M~N', ‘M,N','addr1,+N',’addr1,~N‘ [打印本页]

作者: beyes    时间: 2012-1-15 21:58
标题: 几种范围模式:'M~N', ‘M,N','addr1,+N&#
sed 里有几种范围模式:'M~N', ‘M,N','addr1,+N',’addr1,~N‘ 。

下面用文本 test.txt 来演示这几种模式,文本内容如下:
[beyes@beyes   sed]$ cat test.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.

'M,N' 范围表示匹配第 M 行到第 N 行:
[beyes@beyes   sed]$ sed -n '3,5'p test.txt
3. Hardware
4. Security (Firewall, Network, Online Security etc)
5. Storage

'M~N' 表示从 M 开始,然后显示依次递增 N 行
[beyes@beyes   sed]$ sed -n '3~2'p test.txt
3. Hardware
5. Storage
7. Productivity (Too many technologies to explore, not much time available)
9. Software Development

'addr1,+N' 表示从地址 1(匹配),然后再显示后面的 N 行:
[beyes@beyes   sed]$ sed -n '/Hardware/,+2'p test.txt
3. Hardware
4. Security (Firewall, Network, Online Security etc)
5. Storage

'addr1,~N' 表示从地址 1(匹配),直到遇到行号是 N 的倍数的行,如:
[beyes@beyes   sed]$ sed -n '/Hardware/,~2'p test.txt
3. Hardware
4. Security (Firewall, Network, Online Security etc)
[beyes@beyes   sed]$ sed -n '/Hardware/,~3'p test.txt
3. Hardware
4. Security (Firewall, Network, Online Security etc)
5. Storage
6. Cool gadgets and websites
[beyes@beyes   sed]$ sed -n '/Hardware/,~4'p test.txt
3. Hardware
4. Security (Firewall, Network, Online Security etc)

[beyes@beyes   sed]$ sed -n '/Hardware/,~5'p test.txt
3. Hardware
4. Security (Firewall, Network, Online Security etc)
5. Storage





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