正則(二)

sed正則表達式

1.匹配功能

   1) # sed -n '/ 字符串/'p 文件名spa

   2)上述功能都支持特殊字符 .  *  +等文檔

    可是使用+的時候須要脫義\  若是不想使用\  須要給sed加上-r選項字符串

3)支持{}:匹配屢次前面的字符test

4)支持或者|  sed

5)打印指定行# sed -n '行號'p 文件名im

6)打印指定範圍的行# sed -n '開始行號,結束行號'p 文件名英文

7)打印指定的開始行到結束行,結束行用$表示img

8)選項-e刪除文件

        表示要在一行命令進行多個操做

如上圖既打印了第一行,又匹配了bus,若是兩個操做結果有重合的行,那麼重合的行會打印兩次

9)不區分大小寫 加上I

2.其餘功能

1)d 刪除功能

    刪除指定行後展現到屏幕,文件內容未被刪除

上述命令加上-i選項後則會刪除文件內容

d還能夠刪除指定內容的行

2)替換功能s

    # sed '起始行,結束行s/查找字符串/替換字符串/g' 文件名  //替換字符串

上圖中的命令表示的意思是:將test.txt文件中第一行到第五行中的bin所有查找出來而後替換爲ain,最後在屏幕上將替換後的整個文件打印出來

    被替換的字符串能夠爲正則表達式,以下圖

    例:將下圖行中前十行的第一段和最後一段調換順序

使用命令# head test.txt |sed -r 's/([^:]+):(.*):([^:]+)/\3\2\1/'

    其中的\3表示查找內容的第三段,在命令中是表示將第三段內容放在第一段的位置,運行結果以下

需求:刪除文檔中全部英文字符

使用命令# sed 's/[a-zA-Z]//g'  文件名

需求:將全部行前面加上一個字符串

使用命令 # sed -r 's/(.*)/字符串&/' 文件名  

    其中&表示前面查找的內容,能夠使用\1代替&

相關文章
相關標籤/搜索