sed +는 단어가 일치하는 줄을 제거하고 주석이 줄의 시작 부분에 나타나는 경우에만 해당합니다.

sed +는 단어가 일치하는 줄을 제거하고 주석이 줄의 시작 부분에 나타나는 경우에만 해당합니다.

단어와 일치하는 줄을 삭제하는 것은 쉽습니다

예를 들어, 단어와 일치하는 줄을 삭제하려는 경우 -max.connections

sed '/max.connections/d' /home/conf.txt

하지만 다음 일치하는 줄과 주석으로 시작하는 줄만 제거하려면 어떻게 해야 합니까?

more  /home/conf.txt
#max.connections=438473
#   max.connections=438473
    # max.connections=438473
# max.connections=438473
max.connections=438473

참고 - 주석은 처음에 올 수도 있고 공백을 포함할 수도 있습니다.

예상 출력의 예

more  /home/conf.txt
max.connections=438473

답변1

귀하의 필요에 정확히 맞는 정규 표현식을 만드는 것이 기술입니다. 이 예에서는 a로 시작하고 #, 일부 문자를 포함하고, 그 다음이 인 행을 일치시키려고 합니다 max.connection. 정규식에서는 다음과 같습니다.

^                beginning of the line
#                The character '#'
.*               any character, may be repeated 0-infinity times
max.connections  This litteral text

또는 sed명령으로:

sed '/^#.*max.connections/d' /home/conf.txt

관련 정보