sed : 일치를 위해 공백으로 시작하는 줄을 무시합니다.

sed : 일치를 위해 공백으로 시작하는 줄을 무시합니다.

httpd의 기본 수신 포트를 9090으로 바꾸고 싶습니다. 다음을 사용하여 httpd.conf 파일의 행을 편집할 수 있습니다.

sed -i "/^Listen/c\Listen 9090" /etc/httpd/conf/httpd.conf

하지만 라인

Listen 80

앞에 공백이 있을 수 있습니다.

이 줄과 일치시키기 위해 이 공백을 어떻게 무시할 수 있습니까?

답변1

다음을 수행하여 목록 앞의 공백을 캡처하지 않도록 일치 패턴을 변경하십시오.

/^\s*Listen/

여기에는 모든 항목이 포함됩니다.

Listen ..
    Listen ...

다른 사람.

답변2

정규식이 공백과도 일치하도록 허용하십시오. 문자 그룹 [ \t](공백 또는 탭 일치) 을 사용 하거나동등한 POSIX 대괄호 표현 [:blank:].

( 대괄호 표현식은 실제로 이중 대괄호 쌍을 사용하여 작성됩니다. /^Listen/)/^[[:blank:]]*Listen/

관련 정보