Linux—sed工()
sed是Linux三劍客之一。 Sed是一種非互動式的流編輯器,可動態編輯檔案;流編輯器則會在編輯器處理資料之前基於預先提供的一組 規則來編輯資料流 。 Sed本身是一個管道命令,可以分析 standard input 的,主要是用來分析關鍵字的使用、統計等,此外還可 以將資料進行替換、刪除、選中、選取特定行等功能 1.sed -[]常用的引數及其作用: -n :在sed的一般用法中,所有來自檔案中的資料都會被列出到螢幕上,如果加上-n,則只有經過sed特殊處理的那行(或操作)才會被列出來。 -e :直接下命令列模式上進行sed的動作編輯。 -f :直接將sed的動作寫在一個檔案內,-f filename 則可以執行file內的sed動作。 -r :sed的動作支援的是擴充套件型正則表示式的語法(預設是基礎正則表示式的語法)。
2.function有下面這些引數 i :插入,在目標行的上面新增一行。 a :插入,在目標行的下面新增一行。 d :刪除所選行。 p :列印,也就是將某個選擇的資料打印出來,通常引數-p與引數-n搭配使用。 s :替換,可以直接進行替換的工作。 c :替換,c的後面可以接替字串,這些字串可以替換n1,n2之間的行。 以上引數皆不改變原檔案內容 3.各引數的使用 1)列印行 : -n 'n1 p’列印第n行,且原檔案內容不變; -n ‘n1,n2 p’列印n1到n2行,且原檔案內容不變 2)刪除行: -n ’ n1 d’ 刪除第n行,且原檔案內容不變; -n ‘n1,n2 d’ 刪除n1到n2行,且原檔案內容不變
5)替換字元 -n ‘s/old/new/p’ :將檔案中每行的第一個old字元換成new字元,打印出只發生變化的行,且原始檔內容不變。 -n ‘s/old/new/pg’ :將檔案中全部的old字元換成new字元,打印出只發生變化的行,且原始檔內容不變。 -n ‘s/old/new/p2g’ :將檔案中每行從第2個old字元開始換成new字元,打印出只發生變化的行,且原始檔內容不變。