sed 명령은 외부 ifmodule에 표현식을 씁니다.

sed 명령은 외부 ifmodule에 표현식을 씁니다.

내 구성 파일에는 이것이 있습니다

<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

index.php나는 그것을로 바꾸고 싶다index.temp

내가 이걸 만들었어

sed -i -e '/s/index.php/index.temp/‘ dir.conf

이것은 만든다,

<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
ndex.php/index.temp/

답변1

명령 s///앞에 가 붙어 있어 오해가 /발생할 수 있습니다 sed. 또한 종료하는 작은 따옴표가 일반적인 작은 따옴표가 아닌 것처럼 보이지만( 그렇지 않음 ') 이 질문에 문제가 있을 수 있습니다.

문자열의 모든 인스턴스를 파일의 모든 인스턴스 index.php로 변경하려면 다음을 사용하십시오.index.tempdir.conf

sed -i 's/index\.php/index.temp/g' dir.conf

패턴의 점은 정규 표현식에서 특별하기 때문에 이스케이프 처리해야 합니다(대신 사용할 수도 있음 [.]) \.. 또한 이는 -i"제자리에서 편집"을 사용하고 있다는 점에 유의하세요.일반적으로 휴대하기가 쉽지 않습니다..

또는 myindex.php로 변경하지 않으려면 및 ( 또는 둘 다 대신)를 사용하여 단어 경계를 일치시킵니다.myindex.tempindex.php3index.temp3\<\>\b

sed -i 's/\<index\.php\>/index.temp/g' dir.conf

관련 정보