亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux中sed和awk有哪些區別

發布時間:2022-05-12 10:37:00 來源:億速云 閱讀:262 作者:zzz 欄目:建站服務器

這篇文章主要講解了“linux中sed和awk有哪些區別”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“linux中sed和awk有哪些區別”吧!

區別:1、sed是流編輯器,而awk是文本格式化工具,報告生成器;2、awk適合對文件進行抽取整理,sed適合對文件進行編輯;3、sed讀取一行數據,會以行作為單位進行處理,而awk讀取一行,會切割成字段,以字段(列)為單位,進行細節處理。

本教程操作環境:CentOS 6系統、Dell G3電腦。

awk

awk是一種程序語言,對文檔資料的處理具有很強的功能。awk擅長從格式化報文或從一個大的文本文件中抽取數據。

awk 命令是逐行掃描文件(從第 1 行到最后一行),尋找含有目標文本的行,如果匹配成功,則會在該行上執行用戶想要的操作;反之,則不對行做任何處理。

awk 命令的基本格式為:

awk [選項] '腳本命令' 文件名

此命令常用的選項以及各自的含義,如表 1 所示。

      表 1 awk 命令選項以及含義
              選項              含義
              -F fs              指定以 fs 作為輸入行的分隔符,awk 命令默認分隔符為空格或制表符。
              -f file              從腳本文件中讀取 awk 腳本指令,以取代直接在命令行中輸入指令。
              -v var=val              在執行處理過程之前,設置一個變量 var,并給其設備初始值為 val。

awk 的強大之處在于腳本命令,它由 2 部分組成,分別為匹配規則和執行命令,如下所示:

'匹配規則{執行命令}'

這里的匹配規則,和 sed 命令中的 address 部分作用相同,用來指定腳本命令可以作用到文本內容中的具體行,可以使用字符串(比如 /demo/,表示查看含有 demo 字符串的行)或者正則表達式指定。另外需要注意的是,整個腳本命令是用單引號('')括起,而其中的執行命令部分需要用大括號({})括起來。

在 awk 程序執行時,如果沒有指定執行命令,則默認會把匹配的行輸出;如果不指定匹配規則,則默認匹配文本中所有的行。

舉個簡單的例子:

[root@localhost ~]# awk '/^$/ {print "Blank line"}' test.txt

在此命令中,/^$/ 是一個正則表達式,功能是匹配文本中的空白行,同時可以看到,執行命令使用的是 print 命令,此命令經常會使用,它的作用很簡單,就是將指定的文本進行輸出。因此,整個命令的功能是,如果 test.txt 有 N 個空白行,那么執行此命令會輸出 N 個 Blank line。

sed

sed 命令采用的是流編輯模式,最明顯的特點是,在 sed 處理數據之前,需要預先提供一組規則,sed 會按照此規則來編輯數據。

sed 會根據腳本命令來處理文本文件中的數據,這些命令要么從命令行中輸入,要么存儲在一個文本文件中,此命令執行數據的順序如下:

  • 每次僅讀取一行內容;

  • 根據提供的規則命令匹配并修改數據。注意,sed 默認不會直接修改源文件數據,而是會將數據復制到緩沖區中,修改也僅限于緩沖區中的數據;

  • 將執行結果輸出。

當一行數據匹配完成后,它會繼續讀取下一行數據,并重復這個過程,直到將文件中所有數據處理完畢。

sed 命令的基本格式如下:

sed [選項] [腳本命令] 文件名

該命令常用的選項及含義,如表 1 所示。

      表 1 sed 命令常用選項及含義
              選項              含義
              -e 腳本命令              該選項會將其后跟的腳本命令添加到已有的命令中。
              -f 腳本命令文件              該選項會將其后文件中的腳本命令添加到已有的命令中。
              -n              默認情況下,sed 會在所有的腳本指定執行完畢后,會自動輸出處理后的內容,而該選項會屏蔽啟動輸出,需使用 print 命令來完成輸出。
              -i              此選項會直接修改源文件,要慎用。

成功使用 sed 命令的關鍵在于掌握各式各樣的腳本命令及格式,它能幫你定制編輯文件的規則。

sed和awk的區別

  • sed是流編輯器,而awk是文本格式化工具,報告生成器

    如果文件是格式化的,即由分隔符分為多個域的,優先使用awk

  • awk適合對文件的抽取整理,sed適合對文件的編輯。

  • awk適合按列(域)操作,sed適合按行操作

    sed:每次讀入一行來處理的,sed 適合簡單的文本替換和搜索,sed讀取一行,以行作為單位,進行處理。

    awk:每次讀入一行來處理的(同sed),但awk讀取一行,切割成字段,以字段(列)為單位,進行細節處理。

感謝各位的閱讀,以上就是“linux中sed和awk有哪些區別”的內容了,經過本文的學習后,相信大家對linux中sed和awk有哪些區別這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

罗山县| 广灵县| 宜兰县| 黄龙县| 雅江县| 乌拉特中旗| 山阳县| 怀仁县| 滁州市| 蓬安县| 施甸县| 阳曲县| 扎赉特旗| 商洛市| 调兵山市| 昭通市| 呈贡县| 盐亭县| 大悟县| 龙岩市| 平定县| 屯门区| 贡觉县| 巴东县| 尚志市| 抚松县| 封开县| 横峰县| 临夏县| 龙南县| 扎囊县| 和林格尔县| 延长县| 清苑县| 顺昌县| 九寨沟县| 汝城县| 阿坝| 鄂伦春自治旗| 麻江县| 长海县|