linux中awk和sed的區別:1、sed是一種非交互式且面向字符流的編輯器,awk是一門模式匹配的編程語言;2、sed常用于數據修改,awk常用于數據切片和數據格式化;3、sed一般對行進行操作,awk一般對列進行操作。
本教程操作環境: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的工作原理
-1、當用sed命令對文本進行處理的時候,sed先讀取對象的文本文件的第一行到模式空間中。
2、當有內容進入“模式空間”時,sed的編輯命令對模式空間中的內容進行編輯操作(修改,替換,刪除,追加,顯示等等)
3、模式空間中的內容編輯處理完成之后,sed把此內容通過標準輸出(默認為顯示器)打印出來,并刪除模式空間中的內容。
4、第一行處理結束。從新讀取第二行的內容進行處理,直到最后一行。
推薦學習:Linux視頻教程