sed + 특정 줄에서 단어 삭제

sed + 특정 줄에서 단어 삭제

postgresql.conf 파일에 다음 줄이 있습니다.

#BARMAN# archive_command = 'rsync -a %p [email protected]:/var/lib/barman/main-db-server/incoming/%f'

다음 구문을 사용하여 단어를 제거했습니다 - #BARMAN#

sed '/archive_command/ s/#BARMAN#//g'

그러나 archive_command라는 단어가 줄의 시작 부분에 없습니다.

다음과 같이:

    archive_command = 'rsync -a %p [email protected]:/var/lib/barman/main-db-server/incoming/%f'

그리고 예상되는 출력은 다음과 같아야 합니다.

archive_command = 'rsync -a %p [email protected]:/var/lib/barman/main-db-server/incoming/%f'

이 문제를 어떻게 해결하나요?

답변1

#BARMAN#다음 공백이 아닌 만 바꾸는 것임을 참고하세요 .

이렇게 하려면 다음을 사용하세요.

sed '/archive_command/s/#BARMAN# *//'

또는 탭과 공백을 허용합니다.

sed '/archive_command/s/#BARMAN#[[:space:]]*//'

그러면 문자열과 공백 또는 탭이 직접 제거됩니다.

관련 정보