我尝试将/etc/snort/snort.conf
文件中的“mysql”替换为“MySQL”,并将结果输出到另一个文件。文件中出现了两次mysql
,如图所示。
虽然 usingsed s/mysql/MySQL/g /etc/snort/snort.conf > test.conf
确实有效,但替换g
with 的1
效果完全相同,而不仅仅是替换第一次出现的情况。此外,using2
什么也没有替换,而是替换了第二次出现的情况。
我很高兴能得到一些帮助来解释这种行为。
编辑:这是我的文本文件:https://pastebin.com/X3R9HK6D
答案1
该1
标志表示替换第一次出现的字符串每行,而不是整个文件。对于 2 也类似。g 标志也表示替换每行上的所有出现。碰巧的是,这也会替换文件中的所有出现。
$ 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