如何使用sed命令打印文件的第3至第6行内容?
使用Sed命令打印文件第3至第6行
文件内容
employee.txt 的内容如下:
1 ajar 45000 2 Sunil 25000 3 varoom 50000 4 Amit 47000 5 tanru 15000 6 Deepak 23000 7 Sunil 13000 8 sattvic 80000
已实现的Awk命令
你已经用Awk完成了需求,命令如下:
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt
Sed实现方案
基础版(仅打印目标行内容)
要实现打印第3到第6行的核心需求,直接用Sed的行范围匹配即可:
$ sed -n '3,6p' employee.txt
参数说明
-n:关闭Sed默认的每行输出行为,只打印我们指定的行3,6p:匹配第3至第6行,执行p(打印)操作
增强版(和Awk输出一致,带行号前缀)
如果需要和你提供的Awk命令一样,在每行前重复打印行号,可以用以下两种写法:
写法一:
$ sed -n '3,6{=;p}' employee.txt | paste -d' ' - -
写法二:
$ sed -n '3,6{s/^/& /;='} employee.txt | sed 'N;s/\n/ /'
这两种写法都会在每行内容前添加对应的行号,输出效果和Awk命令完全一致。
内容的提问来源于stack exchange,提问作者flash
相关产品推荐
相关产品推荐

