简介
有的时候我们需要在获取的文本输出中抽取感兴趣的几行数据,这个时候就可以借助sed命令来很快捷的去实现
例子
我们需要统计一下hadoop的文件系统每个目录所占用的大小,可以借助如下命令来显示
hadoop fs -du /
输出如下
Found 13 items
drwxr-xr-x 2 xxx xxx 0 2018-11-07 12:10 /dir1
drwxr-xr-x 2 xxx xxx 0 2018-11-07 11:04 /dir2
drwxr-xr-x 2 xxx xxx 0 2018-08-14 15:20 /dir3
drwxr-xr-x 2 xxx xxx 0 2018-08-14 15:50 /dir4
drwxr-xr-x 2 xxx xxx 0 2018-08-29 15:43 /dir5
drwxr-xr-x 2 xxx xxx 0 2018-11-02 19:15 /dir6
drwxr-xr-x 2 xxx xxx 0 2018-09-03 14:50 /dir7
drwxr-xr-x 2 xxx xxx 0 2018-08-21 15:45 /dir8
drwxr-xr-x 2 xxx xxx 0 2018-08-14 15:44 /dir9
drwxr-xr-x 2 xxx xxx 0 2018-11-07 12:01 /dir10
drwxrwx--- 2 xxx xxx 0 2018-09-30 09:10 /dir11
drwxr-xr-x 2 xxx xxx 0 2018-08-14 16:31 /dir12
-rw-r--r-- 3 xxx xxx 0 2014-10-20 11:42 /dir13
很明显,第1行的内容不是我所需要的,因此利用sed命令进行一个行过滤的作用,该行命令的作用是输出第2行到最后一行的内容。
hadoop fs -ls / | sed -n '2,$p'
如果,只需要第2行到第5行的内容,则可以使用如下命令
hadoop fs -ls / | sed -n '2,5p'