rai3mb
(usa Outra)
Enviado em 23/07/2012 - 12:37h
ricardoschet escreveu:
Gostaria de agradecer novamente pela ajuda pelo seu script funcional,
Gostaria também de saber o que eu poderia modificar para quando a mesma palavra a ser pesquisada (conteúdo alvo) se repete, gostaria que ele adicionasse na primeira linha que encontrasse a palavra e ignorasse as outras.
Ok, bastaria adicioinar um head para filtra apenas a primeira ocorrência no egrep ou usar o parâmetro -m do próprio egrep, filtrando apenas 1 ocorrência, ficando assim:
#!/bin/bash
LINHA=$(egrep -in "$2" $1 | head -n1 | cut -d: -f1) # captura a linha com o conteúdo
CONTEUDO=$(head -n$LINHA $1 | tail -n1)
sed -i "${LINHA}i${CONTEUDO}$3" $1 # adiciona o conteudo_alvo e conteudo_novo na linha
sed -i "$(($LINHA+1))d" $1 # apaga a linha antiga
ou
[code]
#!/bin/bash
LINHA=$(egrep -in -m1 "$2" $1 cut -d: -f1) # captura a linha com o conteúdo
CONTEUDO=$(head -n$LINHA $1 | tail -n1)
sed -i "${LINHA}i${CONTEUDO}$3" $1 # adiciona o conteudo_alvo e conteudo_novo na linha
sed -i "$(($LINHA+1))d" $1 # apaga a linha antiga
[/cod