正則表達式2

sed工具和後面要介紹的awk工具能把替換的文檔輸出到屏幕上,sed和awk都是流式編輯器,是針對文檔的行來進行操作的。

sed工具的使用

1. 匹配指定的行

創建一個sed目錄,將grep目錄下的passwd文件拷貝到該目錄下;


sed命令的格式爲:sed -n 'n'p filename,單引號內的n是一個數字,表示第幾行;

-n:只顯示要打印的行,不顯示其他內容;

打印2到5行;打印全部則是‘1,$’;


匹配含root的行;


同樣的,sed命令也支持特殊字符的用法;


sed命令加上-r選項,類似於grep -E;


sed命令加上-e選項可以實現多個行爲;


sed命令匹配大小寫使用命令'sed -n '/bus/'Ip test.txt';


2. 刪除某些行

參數d表示刪除的動作,它不僅可以刪除指定的單行以及多行,而且可以刪除匹配某個字符的行,還可以刪除從某一行開始到文檔結尾的所有行。


這裏的刪除只是在顯示時不顯示這些行,文檔中的內容不會發生改變;


加上-i選項,可以刪除文檔中的內容;


3. 替換字符或者字符串

參數s表示替換,參數g表示本行全局替換,不加g則只替換本行出現的第一個,與vim的替換類似;

將文檔的前10行,將第一段和最後一段替換位置(head 1.txt |sed -r 's/([^:]+):(.*):([^:]+)/\3:\2:\1/');


將文件中的英文字符全部刪除,即替換爲空;


在所有的行前面添加字符串;