Unix Sed Tutorial: Printing File Lines using Address and Patterns
来源:互联网 发布:mac地址转换 编辑:程序博客网 时间:2024/05/16 17:44
Unix Sed Tutorial: Printing File Lines using Address and Patterns
Unix Sed Introduction
- sed is a “non-interactive” stream-oriented editor. Since its an “non-interactive” it can be used to automate editing if desired.
- The name sed is an abbreviation for stream editor, and the utility derives many of its commands from the ed line-editor (ed was the first UNIX text editor).
- This allows you to edit multiple files, or to perform common editing operations without ever having to open vi or emacs.
- sed reads from a file or from its standard input, and outputs to its standard output.
- sed has two buffers which are called pattern buffer and hold buffer. Both are initially empty
Unix Sed Working methodology
This is called as one execution cycle. Cycle continues till end of file/input is reached.
- Read a entire line from stdin/file.
- Removes any trailing newline.
- Places the line, in its pattern buffer.
- Modify the pattern buffer according to the supplied commands.
- Print the pattern buffer to stdout.
Printing Operation in Sed
Linux Sed command allows you to print only specific lines based on the line number or pattern matches. “p” is a command for printing the data from the pattern buffer.
To suppress automatic printing of pattern space use -n command with sed. sed -n option will not print anything, unless an explicit request to print is found.
Syntax:# sed -n 'ADDRESS'p filename# sed -n '/PATTERN/p' filename
# cat thegeekstuff.txt1. Linux - Sysadmin, Scripting etc.2. Databases - Oracle, mySQL etc.3. Hardware4. Security (Firewall, Network, Online Security etc)5. Storage6. Cool gadgets and websites7. Productivity (Too many technologies to explore, not much time available)8. Website Design9. Software Development10.Windows- Sysadmin, reboot etc.
5 Sed ADDRESS Format Examples
Sed Address Format 1: NUMBER
This will match only Nth line in the input.
# sed -n ‘N’p filename
For example, 3p prints third line of input file thegeekstuff.txt as shown below.
# sed -n '3'p thegeekstuff.txt3. Hardware
Sed Address Format 2: NUMBER1~NUMBER2
M~N with “p” command prints every Nth line starting from line M.
# sed -n ‘M~N’p filename
For example, 3~2p prints every 2nd line starting from 3rd line as shown below.
# sed -n '3~2'p thegeekstuff.txt3. Hardware5. Storage7. Productivity (Too many technologies to explore, not much time available)9. Software Development
Sed Address Format 3: START,END
M,N with “p” command prints Mth line to Nth line.
# sed -n ‘M,N’p filename
For example, 4,8p prints from 4th line to 8th line from input file thegeekstuff.txt
# sed -n '4,8'p thegeekstuff.txt4. Security (Firewall, Network, Online Security etc)5. Storage6. Cool gadgets and websites7. Productivity (Too many technologies to explore, not much time available)8. Website Design
Sed Address Format 4: ‘$’ Last Line
$ with “p” command matches only the last line from the input.
# sed -n ‘$’p filename
For example, $p prints only the last line as shown below.
# sed -n '$'p thegeekstuff.txt10.Windows- Sysadmin, reboot etc.
Sed Address Format 5: NUMBER,$
N,$ with “p” command prints from Nth line to end of file.
# sed -n ‘N,$p’ filename
For example 4,$p prints from 4th line to end of file.
# sed -n '4,$p' thegeekstuff.txt4. Security (Firewall, Network, Online Security etc)5. Storage6. Cool gadgets and websites7. Productivity (Too many technologies to explore, not much time available)8. Website Design9. Software Development10.Windows- Sysadmin, reboot etc.
6 Sed PATTERN Format Examples
Sed Pattern Format 1: PATTERN
PATTERN could be unix regular expression. The below command prints only the line which matches the given pattern.
# sed -n /PATTERN/p filename
For example, following prints the line only which matches the pattern “Sysadmin”.
# sed -n /Sysadmin/p thegeekstuff.txt1. Linux - Sysadmin, Scripting etc.10.Windows- Sysadmin, reboot etc.
Sed Pattern Format 2: /PATTERN/,ADDRESS
# sed -n ‘/PATTERN/,Np’ filename
For example, following prints lines which matches the pattern to Nth line, from input. 3rd line matches the pattern “Hardware”, so it prints from 3rd line to 6th line.
# sed -n '/Hardware/,6p' thegeekstuff.txt3. Hardware4. Security (Firewall, Network, Online Security etc)5. Storage6. Cool gadgets and websites
Sed Pattern Format 3: ADDRESS,/PATTERN/
It prints from the Nth line of the input, to the line which matches the pattern. If the pattern doesnt match, it prints upto end of the input.
# sed -n ‘N,/PATTERN/p’ filename
For example, 4th line matches the pattern “Security”, so it prints from 3rd line to 4th line.
# sed -n '3,/Security/p' thegeekstuff.txt3. Hardware4. Security (Firewall, Network, Online Security etc)
Sed Pattern Format 4: /PATTERN/,$
It prints from the line matches the given pattern to end of file.
# sed -n ‘/PATTERN/,$p’ filename
# sed -n '/Website/,$p' thegeekstuff.txt8. Website Design9. Software Development10.Windows- Sysadmin, reboot etc.
Sed Pattern Format 5: /PATTERN/,+N
It prints the lines which matches the pattern and next N lines following the matched line.
# sed -n ‘/PATTERN/,+Np’ filename
For example, following prints the 5th line which matches the pattern /Storage/ and next two lines following /Storage/.
# sed -n '/Storage/,+2p' thegeekstuff.txt5. Storage6. Cool gadgets and websites7. Productivity (Too many technologies to explore, not much time available)
Sed Pattern Format 6: /PATTERN/,/PATTERN/
Prints the section of file between two regular expression (including the matched line ).
# sed -n ‘/P1/,/P2/p’ filename
For example, 5th line matches “Storage” and 8th line matches “Design”, so it prints 5th to 8th.
# sed -n '/Storage/,/Design/p' thegeekstuff.txt5. Storage6. Cool gadgets and websites7. Productivity (Too many technologies to explore, not much time available)8. Website Design
- Unix Sed Tutorial: Printing File Lines using Address and Patterns
- Unix Sed Tutorial: Delete File Lines Using Address and Patterns
- Unix Sed教程: Append, Insert, Replace, and Count File Lines
- Address Lines and Buses
- Sed - An Introduction and Tutorial
- Using lp to test report printing in Unix for Apps
- Printing out your W2 Form using C# and .NET
- Drawing and Printing OpenGL Graphics Using Device-Independent Bitmaps
- Introduction: Using diff and patch (tutorial)
- Exclude all lines match a pattern using ls and grep
- Core Graphics Tutorial Part 3: Patterns and Playgrounds
- unix find command tutorial and sample code
- Printing Tips and Tricks
- Printing Tips and Tricks
- Printing and Style Sheets
- Printing out your W2 Form using C# and .NET
- Printing out your W2 Form using C# and .NET
- Linux shell: Sed - An Introduction and Tutorial by Bruce Barnett
- google+在中国火不起来
- web.config中配置数据库连接的两种方式
- oracle中的some,any和all
- 如何在activity中动态的设置TextView上字体的颜色
- zoj 1610 Count the Colors
- Unix Sed Tutorial: Printing File Lines using Address and Patterns
- 操作系统启动过程——硬件自检+系统引导+系统加载+系统登录
- linux内存管理之sys_brk实现分析【一】
- Unix Sed Tutorial: Delete File Lines Using Address and Patterns
- 阅读xapian源代码得到的启发
- 在iOS中加入iAds广告
- cp 参数
- No manual entry for pthread_create
- Sed Tips and Tricks