removido
(usa Nenhuma)
Enviado em 16/03/2017 - 11:40h
msoliver escreveu:
PauloHAC escreveu:
Supondo que eu quero editar a linha que contem a palavra "Banana" no arquivo abaixo, mas somente a linha que vem depois da palavra "Melancia". Como faço isso usando "sed" ou "awk"?
Laranja
Banana
Melancia
Banana
Bom dia Paulo.
Verifique se atende as necessidades:
nl=$(grep -n 'Banana' frutas.txt|awk -F: 'END{print$1}')
sed -i "${nl}s/.*/ESTA LINHA FOI ALTERADA/" frutas.txt
Marcelo Oliver
Grande Marcelo,
Pelo que entendi a palavra "Melancia" deve ser referência.
Creio que tenham formas mais simples, mas fiz algumas alterações no seu script.
$ cat fruta.txt
Laranja
Banana
Melancia
Banana
Morango
Banana
#!/bin/bash
PALAVRA="Melancia"
FRUTA=$(grep $PALAVRA -A 1 fruta.txt | tail -1)
NL=$(grep -n $PALAVRA -A 1 fruta.txt | tail -1 | cut -d '-' -f 1)
if [[ $FRUTA == "Banana" ]]; then sed -i "$NL s/.*/ESTA LINHA FOI ALTERADA/" fruta.txt; else echo 'Nao encontrado'; fi