
/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의 경우에도 마찬가지입니다. 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