
Eu estava tentando substituir 'mysql' por 'MySQL' no /etc/snort/snort.conf
arquivo e enviar o resultado para outro arquivo. Existem duas ocorrências de mysql
no arquivo, como pode ser visto na imagem.
Embora using sed s/mysql/MySQL/g /etc/snort/snort.conf > test.conf
tenha funcionado, substituir g
por 1
fez exatamente a mesma coisa, em vez de apenas substituir a primeira ocorrência. Além disso, o uso 2
não substituiu nada em vez de substituir a segunda ocorrência.
Eu apreciaria alguma ajuda para explicar esse comportamento.
EDIT: Este é o meu arquivo de texto:https://pastebin.com/X3R9HK6D
Responder1
O 1
sinalizador significa substituir a primeira ocorrência da string emcada linha, não no arquivo como um todo. Da mesma forma para 2. O sinalizador g também significa substituir todas as ocorrências em cada linha. Acontece que isso também substituirá todas as ocorrências no arquivo.
$ 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