substitua uma palavra ou número em uma frase menor que 8 usando awk ou sed

substitua uma palavra ou número em uma frase menor que 8 usando awk ou sed

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 awksugiro 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/'

informação relacionada