在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

為什么說每個Linux極客都需要了解Sed和Awk

jf_ZqFkd6Up ? 來源:Linux迷 ? 作者:Linux迷 ? 2022-11-22 11:24 ? 次閱讀
sed 和 awk 是每個 Linux 高級用戶最喜歡的工具。但它們是什么?以及如何使用它們來處理文本文件?兩個最被低估的 Linux 實用程序是 sed 和 awk。盡管它們看起來有點神秘,但如果您必須對大段代碼或文本進行重復更改,或者如果您必須分析某些文本,sed 和 awk 是極為有用的。那么,它們是什么?它們是如何使用的?以及,當它們組合在一起時,它們如何使處理文本變得更容易?

什么是sed?

sed 由傳奇的計算先驅 Lee E. McMahon 于 1971 年在貝爾實驗室開發。該名稱代表“流編輯器”。sed 允許您通過一種緊湊而簡單但圖靈完備的編程語言以編程方式編輯正文或文本流。sed 的工作方式很簡單:它將文本逐行讀取到緩沖區中。對于每一行,它將在適用的情況下執行預定義的指令。例如,如果有人要編寫一個 sed 腳本,將單詞“beer”替換為“soda”,然后傳入一個包含“99 Bottles of Beer on the Wall”完整歌詞的文本文件,它將通過逐行打印該文件,并打印出“99 Bottles of Soda on the Wall”,依此類推。最基本的 sed 腳本是“Hello World”。在這里,我們使用僅輸出字符串的 echo 命令來打印“Hello World”。但是我們將它傳遞給 sed,并告訴它用“LinuxMi.com”替換“World”。一目了然。

		
			
linuxmi@linuxmi:~/www.linuxmi.com$ echo "Hello World" | sed s/World/LinuxMi.com/

		38900f7a-6a13-11ed-8abf-dac502259ad0.png如果您需要進行一些更復雜的編輯,您還可以將 sed 指令組合到文件中。讓我們將 A-ha 的“ Take On Me ”的歌詞替換為Greg的“I”、“Me”和“My”的每個實例。首先,將歌曲的歌詞放入名為linuxmi.com.txt的文本文件中。然后打開您喜歡的文本編輯器,并添加以下行。確保您創建的文件以.sed結尾。

		
s/I/Greg/
s/Me/Greg/
s/me/Greg/
s/My/Greg/
s/my/Greg/
您可能會注意到上面示例中的重復(例如 s/me/Greg/ 和 s/Me/Greg/)。這是因為 sed 的某些版本,例如 macOS 附帶的版本,不支持不區分大小寫的匹配。因此,我們必須為每個單詞編寫兩條指令,以便 sed 識別大寫和非大寫版本。這不會完美地工作,就好像您已經手動替換了“I”、“Me”和“My”的每個實例。請記住,我們只是將其用作練習來演示如何將 sed 指令組合到一個腳本中,然后使用單個命令執行它們。然后,我們需要調用該文件。為此,請運行此命令。

		
			
linuxmi@linuxmi:~/www.linuxmi.com$ cat linuxmi.com.txt | sed -f linuxmi.sed
讓我們看看這是怎么做的。你可能已經注意到我們這里沒有使用 echo。我們使用 cat。這是因為 cat 會打印文件的全部內容,而 echo 只會打印文件名。您可能還注意到,我們使用“-f”標志運行 sed。這告訴它將腳本作為文件打開。
最終結果是這樣的:38adde92-6a13-11ed-8abf-dac502259ad0.png還值得注意的是 sed 支持正則表達式 (REGEX)。這些允許您使用特殊而復雜的語法在文本中定義模式。這是一個如何工作的示例。我們將采用上述歌詞,但使用正則表達式打印出每行不以“Take”開頭的行。

		
			
linuxmi@linuxmi:~/www.linuxmi.com$ cat linuxmi.com.txt | sed /^Take/d

		38d81bda-6a13-11ed-8abf-dac502259ad0.png當然,sed 非常有用。而且與 awk 結合使用時會更加強大。

什么是 AWK?

AWK 與 sed 一樣,是一種處理大量文本的編程語言。但是,雖然人們使用 sed 來處理和修改文本,但人們大多使用 AWK 作為分析和報告的工具。與 sed 一樣,AWK 最初是在 1970 年代在貝爾實驗室開發的。它的名字并非來自程序所做的事情,而是來自每個作者的姓氏:Alfred Aho、Peter Weinberger 和 Brian Kernighan。總而言之,AWK 指的是編程語言本身。在小寫中,awk 指的是命令行工具。AWK 通過一次讀取一行文本文件或輸入流來工作。掃描每一行以查看它是否與預定義的模式匹配。如果找到匹配項,則執行操作。但是雖然 sed 和 AWK 可能有相似的目的,但它們是兩種完全不同的語言,具有兩種完全不同的設計理念。AWK 更類似于一些通用語言,如 C、Python 和 Bash。它具有諸如函數之類的東西以及更類似于 C 的方法來處理諸如迭代和變量之類的東西。簡而言之,AWK 感覺更像是一種編程語言。所以,讓我們嘗試一下。使用“Take On Me”的歌詞,我們將打印所有超過 20 個字符的行。

		
			
linuxmi@linuxmi:~/www.linuxmi.com$ awk ' length($0) > 20 ' linuxmi.com.txt

		38fe5f52-6a13-11ed-8abf-dac502259ad0.png

結合兩者

awk 和 sed 結合起來都非常強大。您可以通過使用 Unix 管道來做到這一點。讓我們試試這個:我們將使用 awk 列出“Take On Me”中超過 20 個字符的所有行。然后,我們將刪除所有以“Take”開頭的行。總之,這一切看起來像這樣:

		linuxmi@linuxmi:~/www.linuxmi.com$ awk 'length($0)>20' linuxmi.com.txt | sed /^Take/d輸出如下:392962d8-6a13-11ed-8abf-dac502259ad0.png

sed 和 awk 的力量

在這篇文章中我們就解釋這么多,但希望您現在對 sed 和 awk 的強大功能有所了解。簡而言之,它們是一個文本處理引擎。那么,你為什么要關心呢?除了您永遠不知道何時需要對文本文檔進行可預測的重復更改這一事實之外,sed 和 awk 非常適合解析日志文件。當您嘗試調試 LAMP 服務器中的問題或查看訪問日志以查看您的服務器是否被黑客入侵時,這特別方便。


審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11469

    瀏覽量

    212921
  • 編程語言
    +關注

    關注

    10

    文章

    1955

    瀏覽量

    36213
  • SED
    SED
    +關注

    關注

    0

    文章

    25

    瀏覽量

    27290

原文標題:為什么說每個 Linux 極客都需要了解 Sed 和 Awk

文章出處:【微信號:Linux迷,微信公眾號:Linux迷】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    AWK6943:MP9943 的高效兼容替代方案及技術優勢

    AWK6943 對 MP9943 的替換不僅是引腳與功能的簡單兼容,更是性能與可靠性的全面升級。更低的功耗、更高的效率、汽車級認證及靈活的配置特性,使其在消費電子、工業控制、車載系統等場景中更具優勢。對于需要優化續航、提升穩定性或拓展應用場景的設計,
    的頭像 發表于 06-12 13:51 ?115次閱讀

    Linux中文本處理命令的用法

    Linux 三劍客是(grep,sedawk)三者的簡稱,熟練使用這三個工具可以提升運維效率。Linux 三劍客以正則表達式作為基礎,而在Linu
    的頭像 發表于 04-15 10:22 ?239次閱讀
    <b class='flag-5'>Linux</b>中文本處理命令的用法

    步進電機選型時必須要了解什么?

    步進電機選型時,必須要了解以下幾個方面的信息以確保所選電機能夠滿足特定的應用需求: 1. 轉矩需求: ? ?● 步進電機的保持轉矩類似于傳統電機的“功率”,但物理結構和輸出特性有所不同
    的頭像 發表于 04-14 07:38 ?266次閱讀

    AWK工具介紹

    awk是什么 awk是一個強大的linux命令,有強大的文本格式化的能力,好比將一些文本數據格式化成專業的excel表的樣式。 awk早期在Unix上實現,我們用的
    的頭像 發表于 12-17 11:21 ?477次閱讀
    <b class='flag-5'>AWK</b>工具介紹

    Linux三劍客之Sed:文本處理神器

    關于linux三劍客 grep,過濾關鍵字信息數據。主要是用于查文本內的數據 sed ,對文本數據進行編輯,修改原文件內容 awk,對文件數據過濾,提取,并且能實現,格式化輸出 awk
    的頭像 發表于 12-16 15:58 ?639次閱讀
    <b class='flag-5'>Linux</b>三劍客之<b class='flag-5'>Sed</b>:文本處理神器

    嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-Linux內核移植之內核簡介

    學到本章節,大家應該對Linux操作系統都有了一定的了解,但可能還不知道我們拿到手的內核源碼都經歷了什么。linux有一個龐大的開源社區,每個人都可以向開源社區提交代碼。由于
    發表于 12-16 13:08

    飛凌嵌入式ElfBoard ELF 1板卡-Linux內核移植之內核簡介

    學到本章節,大家應該對Linux操作系統都有了一定的了解,但可能還不知道我們拿到手的內核源碼都經歷了什么。linux有一個龐大的開源社區,每個人都可以向開源社區提交代碼。由于
    發表于 12-13 09:03

    如何掌握Linux文本處理

    目錄 sed用法 模式空間與保持空間 sed命令選項 sed命令的基本語法 sed命令選項 基礎sed命令 高階
    的頭像 發表于 11-10 13:40 ?466次閱讀

    管橋式整流電路需要什么二

    管橋式整流電路需要 四個整流二管 。這些二管通常被連接成一個橋型結構,以實現交流電到直流電的轉換。在橋式整流電路中,每個
    的頭像 發表于 10-09 11:43 ?1351次閱讀

    嵌入式linux開發的基本步驟有哪些?

    嵌入式Linux開發是一個復雜的過程,涉及到硬件選擇、操作系統移植、驅動開發、應用程序開發等多個方面。以下是嵌入式Linux開發的基本步驟,以及每個步驟的說明。 硬件選擇 在開始嵌入式Linu
    的頭像 發表于 09-02 09:11 ?1126次閱讀

    linux驅動程序如何加載進內核

    需要了解Linux內核的基本概念和API。以下是一些關鍵概念: 1.1 內核模塊:Linux內核模塊是一種動態加載和卸載的代碼,可以在不重新啟動系統的情況下加載和卸載。驅動程序通常以內核模塊的形式實現。 1.2 設備模型:
    的頭像 發表于 08-30 15:02 ?1002次閱讀

    USB 3.2雙通道操作:您需要了解的內容

    電子發燒友網站提供《USB 3.2雙通道操作:您需要了解的內容.pdf》資料免費下載
    發表于 08-30 10:09 ?0次下載
    USB 3.2雙通道操作:您<b class='flag-5'>需要了解</b>的內容

    要了解下大模型知識

    工作需要,想要了解一下大模型算力建設知識。
    發表于 08-20 15:31

    不只是前端,后端、產品和測試也需要了解的瀏覽器知識(二)

    繼上篇《 不只是前端,后端、產品和測試也需要了解的瀏覽器知識(一)》介紹了瀏覽器的基本情況、發展歷史以及市場占有率。 本篇文章將介紹瀏覽器基本原理。 在掌握基本原理后,通過技術深入,在研發
    的頭像 發表于 08-12 14:32 ?620次閱讀
    不只是前端,后端、產品和測試也<b class='flag-5'>需要了解</b>的瀏覽器知識(二)

    不只是前端,后端、產品和測試也需要了解的瀏覽器知識

    一、我們為什么要了解瀏覽器? 1. 對于前端開發者 1.瀏覽器是用戶體驗的第一線。我們需要了解瀏覽器的工作原理,才能有效地設計和實現用戶界面,確保良好的用戶體驗。 2.好的產品需要考慮瀏覽器兼容性
    的頭像 發表于 07-01 18:03 ?737次閱讀
    不只是前端,后端、產品和測試也<b class='flag-5'>需要了解</b>的瀏覽器知識
    主站蜘蛛池模板: 国模大胆一区二区三区 | 四虎网址大全 | www.亚洲日本| 国产三级日本三级美三级 | 国产精品夜色7777青苹果 | 人阁色第四影院在线观看 | 午夜男人影院 | 国产午夜亚洲精品 | 久久夜色精品国产噜噜 | 国产日本三级 | 成人午夜免费剧场 | 久久综合色88 | 亚洲视频久久 | 亚洲日本在线观看视频 | 操女人在线 | 国内自拍露脸普通话对白在线 | 丁香六月综合激情 | 久久大香线蕉综合爱 | 特级黄色免费片 | 三级理论片 | 欧美色图色就是色 | 午夜精品福利在线观看 | 欧美色视频网 | 免费爱爱网址 | 国产xxxxxx久色视频在 | 最新人妖shemaletube人妖 最新日本免费一区二区三区中文 | 直接在线观看的三级网址 | 免费jyzzjyzz在线播放大全 | 久久久久国产精品免费看 | 2018国产大陆天天弄 | 中文字幕自拍 | 在线免费视频网站 | 亚洲欧美在线精品一区二区 | 日本色片在线观看 | 三级视频在线 | 色内内免费视频播放 | 亚洲毛片网 | 美女把尿口扒开让男人桶出水 | 国产高清免费午夜在线视频 | 精品国产免费久久久久久婷婷 | 欧美一区二区三区性 |