파일에서 텍스트를 찾아 그 뒤에 텍스트 삽입

파일에서 텍스트를 찾아 그 뒤에 텍스트 삽입

텍스트 파일이 있습니다. 텍스트 파일에는 다음 내용이 포함되어 있습니다.

ServerName
ServerAdmin webmaster@localhost
DocumentRoot

www.mydomain.com끝에 텍스트를 삽입 해야 합니다 ServerName. 이를 수행하는 명령이 있습니까?

답변1

사용 sed:

sed 's/^\(ServerName\)$/\1 www.mydomain.com/' file.txt

캡처된 그룹은 \(ServerName\)대체 모드에서 사용됩니다 \1.

ssedGNU, busybox 또는 일부 BSD 구현을 가정하여 파일을 제자리에서 편집하고 백업을 만듭니다 sed.

sed -i.bak 's/^\(ServerName\)$/\1 www.mydomain.com/' file.txt

원본 파일은 로 유지되고 file.bak, 수정된 파일은 으로 유지됩니다 file.txt.bak.

제자리에서 편집, 백업 필요 없음( ssed또는 busyboxGNU에만 해당):

sed -i 's/^\(ServerName\)$/\1 www.mydomain.com/' file.txt

(BSD의 경우 sed -i '' 's/...)를 사용합니다.


캡처 그룹 없이 더 짧게:

sed -i 's/^ServerName$/& www.mydomain.com/' file.txt

이는 &성냥으로 대체됩니다.

답변2

sed --in-place 's/ServerName/& www.example.com/' /path/to/apache-vhost.conf

답변3

sed를 사용하여 다음 명령을 대체하십시오.

sed -i 's/ServerName/ServerName www.mydomain.com/' file.txt

관련 정보