首頁  >  文章  >  電腦教學  >  流編輯器(SED):基礎

流編輯器(SED):基礎

WBOY
WBOY轉載
2024-03-20 15:11:22391瀏覽

流編輯器(SED):基礎

SED,也稱為串流編輯器,是非常有用的工具。它用於搜尋特定的單字或模式,然後對該單字或模式進行某些操作,或者換句話說,對其進行轉換。在Windows中,SED也稱為「尋找」和「替換」功能。 SED是Ubuntu自備的,所以不需要安裝任何東西;只需開始使用它即可。在本教程中,我們將向您介紹如何使用SED或串流編輯器。

「S」號指揮

#

在SED或串流編輯器中最重要的指令是”s”指令。 “s”代表替代品。語法如下:

的/regexp/替換/標誌

因此,讓我們使用一個名為”file.txt”的檔案作為範例。下面是”file.txt」的樣子,如果你追蹤它:


讓我們用一個例子來說明「S」指令是如何運作的:

SED‘S/第一個/月亮/I’file.txt>moon.txt

#當給出這樣的表達時,它意味著:

    • S—它代表替代品。
    • first—在名為”file.txt」的檔案中搜尋的單字。
    • 「月亮」—「第一個」被「月亮」取代。
    • 代表忽視.我們先忽略這部分。
    • File.txt-SED將在其中搜尋模式或單字的檔案。在這種情況下,單字“First”將是:
    • 已在檔案.txt中搜尋

    • Moon.txt–當「first」一詞被「Moon」取代時,它將被保存在「moon.txt」下。

在SED中,只有在第一個實例中將單字「first」替換為「moon」(這表示如果「first」出現多次,僅第一次會被替換)。該命令在名為「file.txt」的檔案中進行搜索,一旦替換完成,結果將被儲存到「moon.txt」檔案中。

這就是它看起來的樣子:


請記得把」/」放在需要的地方。如果省略了”/”,SED將不接受該指令。

到目前為止,我們只用「遇到」一詞取代了「第一次」。現在,假設我們想要將第三行中的單字「line」(多次出現–具體地說是四次)替換為單字「Angel」。

我們如何具體瞄準第三條線?我們使用以下命令:

SED‘3S/Line/Angel/I’file.txt>angel.txt

#那麼,這裡剛剛發生了什麼事?好的,「3」指定行號。因此,它到了第三條線。然後,在名為“file.txt”的檔案中用“line”取代“angel.txt”,並將轉換後的檔案儲存為“angel.txt”。


如果我們想替換或轉換行」3″和」4″呢?

Sed‘3,4s/line/Angel/I’file.txt>angel2.txt


#注意,在前面的例子中,我們使用了」i」標誌來表示ignore。現在,我們使用”g”標誌來表示全域。

讓我們用一個例子來說明」s」指令是如何運作的:

sed’s/line/sun/g ‘file.txt> sun. txt

當給出這樣的表達時,它意味著:

G代表全球。請記住,在第一個例子中,當我們使用”i”標誌時,只有一個替換。既然我們為global添加了一個”g”,這意味著到處都是替代品。所以,它不是說第一行,第二行,第三行和最後一行,而是說第一個太陽,第二個太陽,第三個太陽和最後一個太陽。它將整個文件中的字行(各處)替換為單字“sun”。


現在,如果我們想根據其中包含的單字來選擇一行呢?好吧,我們可以看到”file.txt”的最後一行有”last”這個字。現在,假設我們想要」This is the last line」。這是最後一句話」。「這是最後一個鬼魂。這是最後一句話」。

我們寫如下:

Sed‘/last/S/line/host/’file.txt>.ghost.txt

#

這裡的”last”告訴SED查找包含單字”last”的行,然後在該行內將單字”line”替換為”ghost”。


現在,假設我們想要做相反的事。假設我們希望沒有“last”一詞的每一行都將“line”一詞更改為“host”。讓我們寫下以下內容:

請選擇‘/最後/! S/行/幽靈/’檔.txt>.ghost 2.txt

#正如你在這裡看到的,除了最後一行(包含單字「last」)之外的每一行都用單字「line」替換了單字「ghost」。


我們也可以使用行號來實現這一點:

Sed‘3,4! S/行/夜/I’file.txt>night.txt

在這種情況下,第3行和第4行被省略,但每隔一行的單字「line」會被單字「night」取代。

多個指令

那麼,如果你有多個指令呢?你寧願一次一個做,還是一次全部做,以節省自己的時間和工作?

如果我們想把“第一”字改成“白天”,把“第二”字改成“夜”,把“其餘”字改成“鬼”,該怎麼辦呢?我們使用分號來完成此操作。別忘了把分號放在最後!

請注意,你不一定要把”i”標誌或”ignore”標誌,但你一定要把斜杠(/)放在轉換短語後面。

現在,讓我們用一個例子來驗證它:

sed’s/first/day/;s/second/night/;s/third/ghost/;s/last/ghost/;’file.txt> combination.txt

結論

流編輯器或SED是一種選擇單字或模式並對其進行轉換的方法,它實際上相當於Windows的”find”和”replace”函數的命令列。 SED指令可能會變得非常複雜,但如果你至少知道了基本原理,你已經準備好了! SED其實是一個功能非常強大的工具。雖然我們不能在一個教程中涵蓋所有這些,但我們涵蓋了SED的基礎知識。本質上,我們學會瞭如何使用”s”命令轉換特定的單詞,其中”s”代表替代詞。我們可以用單字替換其他單字,選擇性地選擇一行替換,甚至否定它。無論哪種方式,這都是關於SED最簡單的部分。

編碼快樂! ###

以上是流編輯器(SED):基礎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:mryunwei.com。如有侵權,請聯絡admin@php.cn刪除
上一篇:Bash Cut範例下一篇:Bash Cut範例