텍스트 파일이 있습니다. 텍스트 파일에는 아래 내용이 포함되어 있습니다.
ServerName
ServerAdmin webmaster@localhost
DocumentRoot
www.mydomain.com
뒤에 텍스트를 삽입해야 합니다 ServerName
. 이를 수행하는 명령이 있습니까?
답변1
사용 sed
:
sed 's/^\(ServerName\)$/\1 www.mydomain.com/' file.txt
캡처된 그룹 \(ServerName\)
은 교체 패턴에서 \1
.
GNU, ssed
busybox 또는 다음의 일부 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