GNU/Linux >> Tutoriales Linux >  >> Linux

¿Reemplazar una palabra o número en una oración menor a 8 usando Awk o Sed?

Tengo un ejemplo a continuación donde necesito reemplazar el valor de la columna 9 si es menor que 8, de lo contrario, salga o ignore usando la función sed o awk:

) in datadbs extent size 16 next size 4 lock mode row;

Si uso la siguiente función awk, solo imprime el valor que necesito en la columna 9, pero aún quiero mantener la estructura de la oración.

echo ") in datadbs extent size 16 next size 4 lock mode row;" | 
 awk '{if ($9 < 8 ) print 8;}'

SALIDA:

8

Lo que quiero es lo siguiente:

) in datadbs extent size 16 next size 8 lock mode row;

Respuesta aceptada:

Sin saber nada awk Sugeriría cambiar el parámetro e imprimir todo:

echo ") in datadbs extent size 16 next size 4 lock mode row;" | 
  awk '{if ($9 < 8 ) $9 = 8; print;}'

Linux
  1. Uso de los comandos Sed, ex y perl para buscar y reemplazar un texto en Linux

  2. Uso de Sed para buscar y reemplazar una línea entre rangos de patrones

  3. Eliminar un carácter específico usando awk o sed

  4. Eliminar líneas vacías usando sed

  5. encontrar archivos que tengan un número en el nombre de archivo mayor que

Cómo eliminar líneas vacías en archivos usando Grep, Sed y Awk

Reemplazar una palabra con otra en bash

Encuentre y reemplace texto en un archivo entre un rango de líneas usando sed

Java usa mucha más memoria que el tamaño del montón (o el tamaño correcto del límite de memoria de Docker)

du que cuenta el número de archivos/directorios en lugar del tamaño

Usar sed para reemplazar entre un patrón específico