linux中awk和sed的區(qū)別:1、sed是一種非交互式且面向字符流的編輯器,awk是一門(mén)模式匹配的編程語(yǔ)言;2、sed常用于數(shù)據(jù)修改,awk常用于數(shù)據(jù)切片和數(shù)據(jù)格式化;3、sed一般對(duì)行進(jìn)行操作,awk一般對(duì)列進(jìn)行操作。
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
linux中awk和sed有什么區(qū)別
1、sed是一種非交互式且面向字符流的編輯器(a “non-interactive” stream-oriented editor)
awk則是一門(mén)模式匹配的編程語(yǔ)言,因?yàn)樗闹饕δ苁怯糜谄ヅ湮谋静⑻幚恚瑫r(shí)它有一些編程語(yǔ)言才有的語(yǔ)法,例如函數(shù)、分支循環(huán)語(yǔ)句、變量 等等,當(dāng)然比起我們常見(jiàn)的編程語(yǔ)言,Awk相對(duì)比較簡(jiǎn)單
2、除了 sed 一般對(duì)行進(jìn)行操作,awk 對(duì)列進(jìn)行操作
3、sed:擅長(zhǎng)數(shù)據(jù)修改。awk:擅長(zhǎng)數(shù)據(jù)切片,數(shù)據(jù)格式化,功能最復(fù)雜。
sed(全稱(chēng):Stream Editor),擅長(zhǎng)對(duì)文件做數(shù)據(jù)做修改的操作,非常高效。這里總結(jié)一些增刪改的基礎(chǔ)用法。
awk 更適合格式化文本,對(duì)文本進(jìn)行較復(fù)雜格式處理,awk 程序?qū)斎胛募拿恳恍羞M(jìn)行操作。awk 是一門(mén)解釋型的編程語(yǔ)言。文本處理、輸出格式化的文本報(bào)表、執(zhí)行算數(shù)運(yùn)算、執(zhí)行字符串操作等等。
擴(kuò)展知識(shí):
使用Awk,我們可以做以下事情:
1,將文本文件視為由字段和記錄組成的文本數(shù)據(jù)庫(kù);
2,在操作文本數(shù)據(jù)庫(kù)的過(guò)程中能夠使用變量;
3,能夠使用數(shù)學(xué)運(yùn)算和字符串操作
4,能夠使用常見(jiàn)的編程結(jié)構(gòu),例如條件分支與循環(huán);
5,能夠格式化輸出;
6,能夠自定義函數(shù);
7,能夠在awk腳本中執(zhí)行UNIX命令;
8,能夠處理UNIX命令的輸出結(jié)果;
sed的工作原理
-1、當(dāng)用sed命令對(duì)文本進(jìn)行處理的時(shí)候,sed先讀取對(duì)象的文本文件的第一行到模式空間中。
2、當(dāng)有內(nèi)容進(jìn)入“模式空間”時(shí),sed的編輯命令對(duì)模式空間中的內(nèi)容進(jìn)行編輯操作(修改,替換,刪除,追加,顯示等等)
3、模式空間中的內(nèi)容編輯處理完成之后,sed把此內(nèi)容通過(guò)標(biāo)準(zhǔn)輸出(默認(rèn)為顯示器)打印出來(lái),并刪除模式空間中的內(nèi)容。
4、第一行處理結(jié)束。從新讀取第二行的內(nèi)容進(jìn)行處理,直到最后一行。
推薦學(xué)習(xí):Linux視頻教程