Tenho um exemplo abaixo onde preciso substituir o valor da coluna 9 se for menor que 8, caso contrário, saia ou ignore usando a função sed ou awk:
) in datadbs extent size 16 next size 4 lock mode row;
Se eu usar a função awk abaixo, ela imprimirá apenas o valor necessário na coluna 9, mas ainda quero manter a estrutura da frase.
echo ") in datadbs extent size 16 next size 4 lock mode row;" |
awk '{if ($9 < 8 ) print 8;}'
SAÍDA:
8
O que eu quero é o abaixo:
) in datadbs extent size 16 next size 8 lock mode row;
Responder1
Sem saber nada awk
sugiro alterar o parâmetro e imprimir tudo:
echo ") in datadbs extent size 16 next size 4 lock mode row;" |
awk '{if ($9 < 8 ) $9 = 8; print;}'
Responder2
sed -e 's/\S\+/&\n/9; s/ [0-7]\n/ 8/'
Responder3
sedalternativa:
s=") in datadbs extent size 16 next size 4 lock mode row;"
echo $s | sed 's/size [0-7] lock/size 8 lock/'