首頁  >  文章  >  運維  >  linux中awk和sed有什麼差別

linux中awk和sed有什麼差別

WBOY
WBOY原創
2022-05-17 17:05:423619瀏覽

linux中awk和sed的區別:1、sed是一種非互動式且面向字元流的編輯器,awk是一門模式匹配的程式語言;2、sed常用於資料修改,awk常用於資料切片及資料格式化;3、sed一般對行進行操作,awk一般對列進行操作。

linux中awk和sed有什麼差別

本教學操作環境:linux7.3系統、Dell G3電腦。

linux中awk和sed有什麼區別

1、sed是一種非互動式且面向字元流的編輯器(a “non-interactive” stream-oriented editor)

awk則是一門模式匹配的程式語言,因為它的主要功能是用於匹配文字並處理,同時它有一些程式語言才有的語法,例如函數、分支循環語句、變數等等,當然比起我們常見的程式語言,Awk相對比較簡單

2、除了sed 一般對行進行操作,awk 對列進行操作

3、sed:擅長資料修改。 awk:擅長資料切片,資料格式化,功能最複雜。

sed(全名:Stream Editor),擅長對檔案做資料做修改的操作,非常有效率。這裡總結一些增刪改的基礎用法。

awk 更適合格式化文本,對文字進行較複雜格式處理,awk 程式會對輸入檔案的每一行進行操作。 awk 是一門解釋型的程式語言。文字處理、輸出格式化的文字報表、執行算數運算、執行字串操作等等。

擴展知識:

使用Awk,我們可以做以下事情:

1,將文字檔案視為由欄位和記錄組成的文字資料庫;

2,在操作文字資料庫的過程中能夠使用變數;

3,能夠使用數學運算和字串運算

4,能夠使用常見的程式結構,例如條件分支與循環;

5,能夠格式化輸出;

6,能夠自訂函數;

7,能夠在awk腳本中執行UNIX指令;

8,能夠處理UNIX指令的輸出結果;

sed的工作原理

linux中awk和sed有什麼差別

#-1、當用sed指令對文字進行處理的時候,sed先讀取物件的文字檔案的第一行到模式空間。

2、當有內容進入「模式空間」時,sed的編輯指令會對模式空間中的內容進行編輯操作(修改,替換,刪除,追加,顯示等等)

3.模式空間中的內容編輯處理完成之後,sed把此內容透過標準輸出(預設為顯示器)列印出來,並刪除模式空間中的內容。

4、第一行處理結束。從新讀取第二行的內容進行處理,直到最後一行。

推薦學習:Linux影片教學

#

以上是linux中awk和sed有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn