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

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

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

ServerName
ServerAdmin webmaster@localhost
DocumentRoot

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

답변1

사용 sed:

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

캡처된 그룹 \(ServerName\)은 교체 패턴에서 \1.

GNU, ssedbusybox 또는 다음의 일부 BSD 구현을 가정하여 백업을 통해 파일을 제자리에서 편집합니다 sed.

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

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

백업 없이 내부 편집(GNU ssed또는 busybox전용):

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

관련 정보