跳至內容

流編輯器(SED):基礎

更新時間
快连VPN:速度和安全性最佳的VPN服务
快连VPN:速度和安全性最佳的VPN服务

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):基礎的詳細內容,更多請關注本站其它相關文章!

更新時間

發表留言

請注意,留言須先通過審核才能發佈。