파일의 지정된 줄 시작 부분에 주석을 삽입합니다.

파일의 지정된 줄 시작 부분에 주석을 삽입합니다.

이것은 상당히 초보자용 질문이지만 제가 하려는 작업은 매우 간단해야 합니다. 개발 환경 설치를 자동화하는 스크립트를 작성 중이지만 다음의 loadmoduleApache 구성 파일에 주석을 달아야 합니다. 내 리눅스 머신.

LoadModule mpm_event_module modules/mod_mpm_event.so

다음 명령을 사용하여 댓글을 삭제할 수 있었습니다.

sudo sed -i '66s/.//' /etc/httpd/conf/httpd.conf

답변1

댓글 삽입:

sed 's/^ *LoadModule/#&/' /etc/httpd/conf/httpd.conf

댓글 삭제:

sed '/^ *# *LoadModule/s/#//' /etc/httpd/conf/httpd.conf

또는 공백도 제거하십시오.

sed '/^ *# *LoadModule/s/^ *# *//' /etc/httpd/conf/httpd.conf

특정 줄 번호에만 대체(삽입 또는 삭제)를 적용합니다. (자동 설치를 수행하기 위한 스크립트를 개발하려는 경우에는 좋은 생각이 아닙니다.)

# Apply on line 66 only
sed '66ba;p;d;:a /^ *# *LoadModule/s/^ *# *//' /etc/httpd/conf/httpd.conf

또는 (동일하지만 -e다른 사람에게도 이식 가능 sed):

sed -e '66ba' -e 'p;d;:a' -e ':a' -e '/^ *# *LoadModule/s/^ *# *//' /etc/httpd/conf/httpd.conf

또는

sed '66{/^ *# *LoadModule/s/^ *# *//}' /etc/httpd/conf/httpd.conf

일치를 적용하지 않고 고정 행 번호만 편집하려면 다음을 수행하십시오.

# Insert comment on line 66
sed '66s/^/#/' /etc/httpd/conf/httpd.conf

# Remove comment on line 66
sed '66s/^#//' /etc/httpd/conf/httpd.conf

# Remove spaces too
sed '66s/^ *# *//' /etc/httpd/conf/httpd.conf

구성 파일은 다음과 같이 처리됩니다.

(끼워 넣다)

    LoadModule foo
LoadModule bar

(제거하다):

    #LoadModule foo
#LoadModule bar

    #    LoadModule baz
#    LoadModule bax

답변2

Vim을 사용하여 이 작업을 수행할 수도 있습니다.

vim -c '/LoadModule/s/^/#/|x' httpd.conf

관련 정보