단어와 일치하는 줄을 삭제하는 것은 쉽습니다
예를 들어, 단어와 일치하는 줄을 삭제하려는 경우 -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