Adicionar linha em branco usando sed -i ou echo ??? [RESOLVIDO]

1. Adicionar linha em branco usando sed -i ou echo ??? [RESOLVIDO]

Lucas Peregrino
Lucas Peregrino

(usa Debian)

Enviado em 27/08/2017 - 09:25h

Bom dia gostaria de estar adicionando uma linha em branco no arquivo de configuração especifico tipo paragrafo 30 no echo ele sempre vai pro final do arquivo terial alguma forma de especificar a linha a adicionar ???.


  


2. MELHOR RESPOSTA

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 27/08/2017 - 13:22h

Lucas Peregrino escreveu:

se eu usar o echo ele vai para ultima linha

echo "host Suporte {
allow client-updates;
allow unknown-clients;
hardware ethernet 48:2f:15:6d:1c:ee;
fixed-address 142.18.31.23;
}" >> /etc/dhcpd.conf

ele colocaria ele essa conf na ultima linha tem como eu ir colocando isso com o sed linha 30 sem apagar o conteúdo já cadastrado.

isso que estou querendo.


Veja se isso resolve:
sed -i '30i\host Suporte {\nallow client-updates;\nallow unknown-clients;\nhardware ethernet 48:2f:15:6d:1c:ee;\nfixed-address 142.18.31.23;\n}' /etc/dhcpd.conf 




3. Re: Adicionar linha em branco usando sed -i ou echo ???

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 27/08/2017 - 09:34h

Supondo que o paragrafo esteja formatado começando com um tab, você pode trocar o tab por uma quebra de linha mais um tab, ex:
sed 's/^\t/\n&/g' 


Ou se começar com uma letra maiúscula:
sed 's/^[A-Z]/\n&/g' 


São somente exemplos é o máximo que posso fazer sem ver o conteúdo do seu arquivo.


______________________________________________________________________
OS: Biebian
Kernel: x86_64 3.5.2-amd64
Resolution: 1320x768
CPU: Intel Core i3-4005U CPU @ 1.7GHz
RAM: 3852MiB
Distro: http://biebian.sourceforge.net/


4. Re: Adicionar linha em branco usando sed -i ou echo ??? [RESOLVIDO]

Lucas Peregrino
Lucas Peregrino

(usa Debian)

Enviado em 27/08/2017 - 09:46h

No caso eu não queria visualizar e sim adicionar a linha em branco num .conf seja paragrafo 30 ou 46 ou 98 ...


5. Re: Adicionar linha em branco usando sed -i ou echo ??? [RESOLVIDO]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 27/08/2017 - 09:51h

Oque você está considerando como paragrafo em um .conf ?

Para escrever no arquivo faça assim:
sed -i 's/^[A-Z]/\n&/g' file.txt 


Se for possível mandar umas linha desse arquivo fica mais fácil.

______________________________________________________________________
OS: Biebian
Kernel: x86_64 3.5.2-amd64
Resolution: 1320x768
CPU: Intel Core i3-4005U CPU @ 1.7GHz
RAM: 3852MiB
Distro: http://biebian.sourceforge.net/


6. Re: Adicionar linha em branco usando sed -i ou echo ???

Lucas Peregrino
Lucas Peregrino

(usa Debian)

Enviado em 27/08/2017 - 10:02h

Tipo no conf supondo que seja um conf de dhcp na linha 30 começa a escrita.
# teste
host teste {
allow client-updates;
allow unknown-clients;
hardware ethernet 54:1f:12:d0:cc:ee;
fixed-address 142.68.23.25;
}
gostaria de joga ela para baixo e adicionar na linha uma linha em branco no 30 para poder adicionar o proximo host no dhcp.


7. Re: Adicionar linha em branco usando sed -i ou echo ??? [RESOLVIDO]

Luan Santana
lsantana.feijao

(usa Arch Linux)

Enviado em 27/08/2017 - 11:22h

Lucas Peregrino escreveu:

Tipo no conf supondo que seja um conf de dhcp na linha 30 começa a escrita.
# teste
host teste {
allow client-updates;
allow unknown-clients;
hardware ethernet 54:1f:12:d0:cc:ee;
fixed-address 142.68.23.25;
}
gostaria de joga ela para baixo e adicionar na linha uma linha em branco no 30 para poder adicionar o proximo host no dhcp.


Fale Lucas, talvez o que estejas querendo seja:

sed -i '3 a\novo texto' arquivo.foo 


Este comando chega na linha 3, quebra o texto e adiciona o "novo texto" ao arquivo.foo.
Espero ter ajudado.








8. Re: Adicionar linha em branco usando sed -i ou echo ??? [RESOLVIDO]

Lucas Peregrino
Lucas Peregrino

(usa Debian)

Enviado em 27/08/2017 - 12:04h

se eu usar o echo ele vai para ultima linha

echo "host Suporte {
allow client-updates;
allow unknown-clients;
hardware ethernet 48:2f:15:6d:1c:ee;
fixed-address 142.18.31.23;
}" >> /etc/dhcpd.conf

ele colocaria ele essa conf na ultima linha tem como eu ir colocando isso com o sed linha 30 sem apagar o conteúdo já cadastrado.

isso que estou querendo.


9. Re: Adicionar linha em branco usando sed -i ou echo ???

Luan Santana
lsantana.feijao

(usa Arch Linux)

Enviado em 27/08/2017 - 14:46h

Lucas Peregrino escreveu:

se eu usar o echo ele vai para ultima linha

echo "host Suporte {
allow client-updates;
allow unknown-clients;
hardware ethernet 48:2f:15:6d:1c:ee;
fixed-address 142.18.31.23;
}" >> /etc/dhcpd.conf

ele colocaria ele essa conf na ultima linha tem como eu ir colocando isso com o sed linha 30 sem apagar o conteúdo já cadastrado.

isso que estou querendo.


Um script básico que poderia resolver teu problema, pode ser:

#!/bin/bash

NOVO=Suporte
MAC=48:2f:15:6d:1c:ee
IP=142.18.31.23

CONF="host ${NOVO} {\n\tallow client-updates;\n\tallow unknown-clients;\n\thardware ethernet ${MAC};\n\tfixed-address ${IP};\n}";

sed -i "29 a ${CONF}" /etc/dhcp.conf


Explicação:
Como o arquivo em questão possui as configurações a partir da linha 30, então sed vai até uma linha anterior, no caso a 29, faz a quebra de linha e adiciona os dados da variável CONF.

Espero ter ajudado.


10. Re: Adicionar linha em branco usando sed -i ou echo ??? [RESOLVIDO]

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 27/08/2017 - 18:03h

lsantana.feijao escreveu:
Um script básico que poderia resolver teu problema, pode ser:

#!/bin/bash

NOVO=Suporte
MAC=48:2f:15:6d:1c:ee
IP=142.18.31.23

CONF="host ${NOVO} {\n\tallow client-updates;\n\tallow unknown-clients;\n\thardware ethernet ${MAC};\n\tfixed-address ${IP};\n}";

sed -i "29 a ${CONF}" /etc/dhcp.conf


Explicação:
Como o arquivo em questão possui as configurações a partir da linha 30, então sed vai até uma linha anterior, no caso a 29, faz a quebra de linha e adiciona os dados da variável CONF.

Espero ter ajudado.


Gostei do script, fica bem mais prático!
Uma sugestão para ficar mais intuitivo, pode-se usar o parâmetro "i" em vez do "a" no sed, assim o texto é adicionado exatamente na linha especificada:
sed -i "30 i ${CONF}" /etc/dhcp.conf 







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts