sed 取代第一次出現參數的所有內容,並且替換第二次出現參數的所有內容

sed 取代第一次出現參數的所有內容,並且替換第二次出現參數的所有內容

我試圖將/etc/snort/snort.conf文件中的“mysql”替換為“MySQL”,並將結果輸出到另一個文件。文件中出現了兩次mysql,如圖所示。

雖然使用sed s/mysql/MySQL/g /etc/snort/snort.conf > test.conf確實有效,但替換g為卻1做了完全相同的事情,而不僅僅是替換第一次出現的情況。此外,使用2替換任何內容而不是替換第二次出現的情況。

我希望能得到一些幫助來解釋這種行為。

編輯:這是我的文字檔:https://pastebin.com/X3R9HK6D

在此輸入影像描述

答案1

1標誌表示替換字串第一次出現的位置每行,不在整份文件中。類似地,對於 2。碰巧這也將替換文件中出現的所有內容。

$ cat > text.txt
foo foo
foo foo
$ sed s/foo/bar/1 text.txt 
bar foo
bar foo
$ sed s/foo/bar/2 text.txt 
foo bar
foo bar

相關內容