1. 程式人生 > >shell中對檔案指定行的操作

shell中對檔案指定行的操作

shell中對檔案指定行的操作

1、awk1

awk 可以設定條件來輸出檔案中m行到n行中每行的指定的k欄位,使用格式如下

awk 'NR==m,NR==n {print $k}' path/filename

m,n,k表示實在的數值,其中k為0-9。如果要用變數來表示m,n的值,則變數需要用單引號將其引起來。

NR,{print }是awk命令在此用法下的規定欄位;path/filename表示讀取檔案的路徑及檔名。

當要讀取某一行的內容的k欄位時,使用格式如下

awk 'NR==m {print $k}' path/filename

m,k與以上的含義一致,分別表示要讀取的行數和當前行的第k欄位。

2、sed2

顯示某行

 [[email protected]] # sed -n '1p'           #顯示第一行 
 [[email protected]] # sed -n '$p'           #顯示最後一行
 [[email protected]] # sed -n '1,2p'         #顯示第一行到第二行
 [[email protected]] # sed -n '2,$p'         #顯示第二行到最後一行

使用模式進行查詢

[[email protected]] # sed -n '/ruby/p'       #查詢包括關鍵字ruby所在所有行
[
[email protected]
] # sed -n '/\$/p' #查詢包括關鍵字$所在所有行,使用反斜線\遮蔽特殊含義

刪除指定行

[[email protected]] # sed '1d'               #刪除第一行 
[[email protected]] # sed '$d'               #刪除最後一行
[[email protected]] # sed '1,2d'             #刪除第一行到第二行
[[email protected]] # sed '2,$d'             #刪除第二行到最後一行

  1. awk詳細命令見:http://man.linuxde.net/awk ↩︎

  2. sed詳細命令見:http://man.linuxde.net/sed ↩︎