Encontre um texto em um arquivo e insira um texto depois

0

Eu tenho um arquivo de texto. O arquivo de texto contém o conteúdo abaixo.

ServerName
ServerAdmin webmaster@localhost
DocumentRoot

Eu preciso inserir um texto www.mydomain.com após o ServerName . Existe algum comando para fazer isso?

    
por Smith Dwayne 20.06.2016 / 08:04

3 respostas

1

Usando sed :

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

O grupo capturado, \(ServerName\) é usado no padrão de substituição como .

Editando o arquivo no lugar, com backup, assumindo o GNU, ssed , busybox ou algumas implementações do BSD de sed :

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

O arquivo original será mantido como file.bak e o arquivo modificado será file.txt.bak .

Edição no local, sem backup (GNU, ssed ou busybox apenas):

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

(para BSDs, use sed -i '' 's/... ).

Ainda mais curto, sem nenhum grupo capturado:

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

Aqui & será substituído pela correspondência.

    
por 20.06.2016 / 08:06
1
sed --in-place 's/ServerName/& www.example.com/' /path/to/apache-vhost.conf
    
por 20.06.2016 / 08:07
0

Usando o comando sed substitue:

sed -i 's/ServerName/ServerName www.mydomain.com/' file.txt
    
por 20.06.2016 / 08:08

Tags