/etc의 rc.tcpip 파일에 있는 항목을 주석 처리해야 합니다.
# snmpmibd 데몬을 시작합니다.
start /usr/sbin/snmpmibd "$src_running"# 단순 네트워크 관리 프로토콜(SNMP) 데몬을 시작합니다.
start /usr/sbin/snmpd "$src_running"
이 줄에 어떻게 주석을 달 수 있나요 sed
?
답변1
로 시작하는 행을 주석 처리하려면 start /usr/sbin/snmpmibd
대체 텍스트에 앵커 및 패턴이 포함된 명령을 사용하십시오 s
. 여기서 플러스는 대체된 텍스트를 나타냅니다. 두 줄을 별도로 일치시키거나 누락된 부분(명확성을 희생하여 간결함)을 기록하고 사용할 수 있습니다. 패턴에 슬래시가 포함되어 있으므로 다른 문자를 구분 기호로 사용하세요. 필터이므로 출력을 새 파일에 쓴 다음 새 파일을 제자리로 이동해야 합니다(출력을 입력과 동일한 파일로 리디렉션하는 것은 작동하지 않습니다. 먼저 이전 파일을 삭제한 다음 이동을 시작합니다) 이제부터 빈 파일에서 읽기)²를 수행합니다.^
#
&
snmpd
snmpmibd
mib
snmp\(mib\)\{0,1\}d
!
sed
sed
sed -e 's!^start /usr/sbin/snmpmibd !#&!' -e 's!^start /usr/sbin/snmpmibd !#&!' </etc/rc.tcpip >/etc/rc.tcpip.new
mv /etc/rc.tcpip.new /etc/rc.tcpip
파일을 제자리에서 편집하려면 다음을 사용할 수 있습니다.편집하다sed 대신.
ed -s /etc/rc.tcpip <<'EOF'
g!^start /usr/sbin/snmpd ! s/^/#/
g!^start /usr/sbin/snmpmibd ! s/^/#/
w
q
EOF
¹ AIX에는 or 연산자 가 없고 BRE만 시작되어 동작하지 않습니다.\?
\|
\(snmpmibd\|snmpd\)
² AIX sed 아니요 -i
, 이것은 GNU 확장입니다.
답변2
-i를 허용하지 않는 AIX sed에 대한 의견을 주신 Gilles에게 감사드립니다.
코멘트 라인
sed 's/^[[:space:]]*[^#]/#&/' /etc/rc.tcpip > /tmp/rc.tcpip
cat /tmp/rc.tcpip /etc/rc.tcpip
rm /tmp/rc.tcpip
/yourRegExFilterPattern/
선택할 온라인 필터는 다음 전에 추가 할 수 있습니다 s
.
sed '/start/ s/^[[:space:]]*[^#]/#&/' /etc/rc.tcpip > /tmp/rc.tcpip
cat /tmp/rc.tcpip /etc/rc.tcpip
rm /tmp/rc.tcpip
또는 복잡한 필터에서는 더 효율적이지만 읽기가 어렵습니다(간단한 필터의 경우에는 해당되지 않음 start
).
sed 's/^[[:space:]]*start/#&/' /etc/rc.tcpip > /tmp/rc.tcpip
cat /tmp/rc.tcpip /etc/rc.tcpip
rm /tmp/rc.tcpip
줄의 주석 처리 제거(실제 주석의 주석 처리 제거를 방지하려면 직접 필터링 패턴이 필요함)
sed '/YourSelectionPattern/ s/^\(^[[:space:]]*\)#/\1/' /etc/rc.tcpip > /tmp/rc.tcpip
cat /tmp/rc.tcpip /etc/rc.tcpip
rm /tmp/rc.tcpip
루트가 아닌 경우 이 파일을 수정하려면 추가 권한이 필요할 수 있으므로 a가 sudo
핵심입니다.
/etc/rc.tcpip
만약을 대비해 이전 백업의 복사본을 만드는 것이 좋습니다 .
답변3
에서 /etc/rc.tcpip
다음 명령을 실행하여 항목을 주석 처리합니다.snmpd
chrctcp -d snmpd