記錄一下shell三劍客中sed命令的一些小要點

2021-10-01 16:56:04 字數 336 閱讀 4547

sed命令在處理文字時,會一行一行的進入模式空間並依次匹配,如果匹配到正則,則會對相應行進行處理(具體命令包括s替換 d刪除 r讀檔案 w寫檔案等等 )。不管處理與否,每一行都會輸出到標準輸出(在沒有使用-n選項的情況下)。

sed -n選項是靜默輸出,即不將進入模式空間的每一行輸出到標準輸出。

sed -i選項是就地編輯,我們可以簡單的理解,在標準輸出的結果是什麼,加上-i選項,被編輯的檔案就會變成什麼樣。所以-i 和-n選項在一起使用時必須小心。也許靜默輸出之後檔案內容在-i選項的操作下全消失了。

另外 sed 的w命令,不需要接-i選項就可以直接將相應內容寫到目標檔案。

shell三劍客之grep

grep的工作方式是這樣的,它在乙個或多個檔案中搜尋字串模板。如果模板包括空格,則必須被引用,模板後的所有字串被看作檔名。搜尋的結果被送到螢幕,不影響原檔案內容。grep可用於shell指令碼,因為grep通過返回乙個狀態值來說明搜尋的狀態,如果模板搜尋成功,則返回0,如果搜尋不成功,則返回1,如果...

shell三劍客之sed

sed命令是文字處理工具,讀取文字內容,根據指定的條件進行處理,對檔案內容進行增刪改查,常與正規表示式進行相互配合使用。他是一種流編輯器,一次處理一行內容。處理時,把當前處理的行儲存在臨時緩衝區中,稱為 模式空間 pattern space 接著用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的...

shell三劍客之awk grep

awk也是乙個編輯工具,他可以在無互動情況下實現複雜的文字操作。awk執行流程 1 首先執行begin 區域塊中的初始化操作 2 從指定的資料檔案中迴圈讀取乙個資料行 自動更新nf nr 0 1等內建變數的值 並執行 模式或條件 3 最後執行end 區域中的後續處理操作 awk內建變數 fs指定每行...