GNU/Linux >> Tutoriales Linux >  >> Linux

Uso de AWK para seleccionar filas con un valor específico en una columna específica

El archivo en el que ejecuta el script tiene finales de línea de DOS. Puede ser que se haya creado en una máquina con Windows.

Usa dos2unix para convertirlo a un archivo de texto Unix.

Alternativamente, ejecútelo a través de tr :

tr -d '\r' <input.txt >input-unix.txt

Luego usa input-unix.txt con su correcto awk código.

Para modificar el awk código en lugar del archivo de entrada:

awk -F, '$7 == "-99\r"' input.txt >output.txt

Esto tiene en cuenta el retorno de carro al final de la línea.

O,

awk -F, '$7 + 0 == -99' input.txt >output.txt

Esto obliga a que la séptima columna se interprete como un número, lo que "elimina" el retorno de carro.

Del mismo modo,

awk -F, 'int($7) == -99' input.txt >output.txt

también eliminaría el \r .


awk -F, '{if($7==-99)print $0}'

hará eso...


Linux
  1. ¿Archivos Cat con directorio?

  2. ¿Usando Word Wrap con Mc?

  3. Usar colores con printf

  4. Agregar columna al final del archivo CSV usando 'awk' en el script BASH

  5. ¿Cómo rellenar un archivo con FF usando dd?

Comando AWK en Linux con ejemplos

Comando awk de Linux con 10 ejemplos

usando awk con condiciones de valor de columna

Usando grep vs awk

¿Cómo reemplazar el contenido de una columna específica con awk?

¿Cómo cambiar un archivo en el lugar usando awk? (como con sed -i)