perl -p -i -e 's%^(include /etc/nginx/https.include;)$%#$1%' /etc/nginx/ap-servers.include
대신 사용
perl -p -i -e 's%^(include /etc/nginx/https.include;.*)$%#$1%' /etc/nginx/ap-servers.include
를 원본 파일을 유지하려면, -i
후 백업 확장을 추가
perl -p -i.bak -e 's%^(include /etc/nginx/https.include;)$%#$1%' /etc/nginx/ap-servers.include
을 설명해. -p
플래그는 내부 교체를 의미합니다. 파일의 모든 행이 표현식에 공급되고 그 결과가 대체 파일로 사용됩니다. -i
플래그는 백업 파일의 확장자를 나타냅니다. 아무 것도 사용하지 않으면 백업 생성을 방지 할 수 있습니다. -e
은 Perl에게 다음 매개 변수를 실행할 표현식으로 가져 오도록 지시합니다.
이제 표현식은 s%something%other%
입니다. 나는 더 전통적인 /
대신 %
을 사용하여 경로의 슬래시를 벗어나지 않도록합니다. 표현식에 괄호를 사용하고 안전을 위해 대체 표현식에 $1
을 사용합니다. 하나를 변경하면 다른 표현식이 뒤 따릅니다. 따라서, %#$1%
은 실제로 두 번째 %
이 s
이고, 그 다음에 괄호 안의 패턴을 나타내는 #
, $1
, 그리고 마지막으로 %
이 s
입니다.
HTH. 손.
이것은 serverfault.com, imho에 더 적합합니다. –
serverfault에 적절한 이유가 표시되지 않습니다.그것은 서버와 관련이없는 것처럼 보입니다. 수퍼 유저에 속합니다. 투표를 마치기 만하면됩니다. – rmeador
/bin/sh 또는 bash 또는 csh 또는 다른 쉘이 완전한 언어입니다. 왜 "언어 Y로 X를 얻는가?"라고 생각하지 않습니까? StackOverflow에 속해 있습니까? – dmckee