1. 程式人生 > >sed行定位的使用

sed行定位的使用

sed -n '2'p file
#只打印第1行,不列印其它的行

sed -n '1,4'p file
#從第1行開始到第4行的記錄

sed -n '/los/'p file
#列印匹配los的行

sed -n '4,/los/'p file
#列印從第4行到匹配los之間的所有行

sed '1,2'd file
#把第一行和第二行全部刪除(意思是檢視其他行的資料,並沒有真實刪除原始檔)

練習
準備檔案:vi file

aaa
bbb
ccc
ddd
eee
fff
hhh

使用nl file檢視檔案

     1  aaa
     2  bbb
     3  ccc
     4  ddd
     5  eee
     6  fff
     7  hhh

檢視第5行:

cat file | sed -n '5'p
#p是列印的意思

結果如下:

eee

檢視第3行到第6行:

cat file | sed -n '3,6'p

結果如下:

ccc
ddd
eee
fff

檢視所有,但不包括第3行到第6行(就是刪除3-6行的資料):

cat file | sed '3,6'd

結果如下:

aaa
bbb
hhh

統計檔案有多少行:

cat file | wc -l

結果如下:

7

檢視包含字串h的:

cat file | sed -n '/h/'p

結果如下:

hhh

檢視包含字串f

的,一直到最後一行的資料:

cat file | sed -n '/f/,$'p

結果如下:

fff
hhh

甚至可以檢視df命令結果的第3行第5列的資料:

df | sed -n '3'p | awk '{print $5}'

把結果轉整型:

df | sed -n '3'p | awk '{print int($5)}'