SED,也稱為串流編輯器,是非常有用的工具。它用於搜尋特定的單字或模式,然後對該單字或模式進行某些操作,或者換句話說,對其進行轉換。在Windows中,SED也稱為「尋找」和「替換」功能。 SED是Ubuntu自備的,所以不需要安裝任何東西;只需開始使用它即可。在本教程中,我們將向您介紹如何使用SED或串流編輯器。
在SED或串流編輯器中最重要的指令是”s”指令。 “s”代表替代品。語法如下:
的/regexp/替換/標誌
因此,讓我們使用一個名為”file.txt”的檔案作為範例。下面是”file.txt」的樣子,如果你追蹤它:
讓我們用一個例子來說明「S」指令是如何運作的:
SED‘S/第一個/月亮/I’file.txt>moon.txt
#當給出這樣的表達時,它意味著:
已在檔案.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中文網其他相關文章!