msoliver
(usa Debian)
Enviado em 15/09/2016 - 13:10h
Krusth escreveu:
Quero incluir uma linha em determinada posição do arquivo, por exemplo: incluir texto na linha tal, mas passando variáveis ao sed
Exemplo:
#!/bin/bash
Line=$(cat -n arquivo | grep $i | awk '{print $1}')
text=$(cat arquivo | grep -n ^ | grep ^$Line | cut -d: -f2)
sed -i "$Linei\$text\" arquivo2
# Sei que se eu usar
sed -i '4i\texto\' arquivo2
Funciona, incluindo "texto" na linha 4
Quero passar o número da linha e o texto por variáveis, tem como? Alguém pode dar um exemplo?
------------------------------------------------------------------------
Boa tarde, Krusth.
O Erro, é neste comando, sed -i "$Linei\$text\" arquivo2
PROTEJA a VAR $Line
sed -i ""$Line"i $text" arquivo2
Ou
sed -i "${Line}i $text" arquivo2
Notei que o Nº da LINHA esta na VAR "$i", portanto, o comando:
Line=$(cat -n arquivo | grep $i | awk '{print $1}')
É desnecessário
OTIMIZANDO .....
text=$(awk 'NR=='$i' {print $0}' arquivo.txt)
sed -i ""$i"i $text" arquivo2
att.:
Marcelo Oliver