[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

consulta awk (sort dentro de if)



Buenas,

estoy empezando con awk y como siempre más por necesidad que por gusto. Necesito sacar dada una lista y en función de un valor numerico dos listados. Además quiero ordenar los resultados segun otro campo. He mirado y creo que la mejor opción es awk. Mi duda surge a la hora de emplear sort para ordenarlo por este segundo campo. Si introduzco un pipe entre print linea y el fichero como entiendo que ha de ir no me funciona. el los ejemplos que he seguido de una sola línea del estilo
awk 'BEGIN {FS=":"}; {print $1,$5 | "sort"}' /etc/passwd
funciona pero no sé como pasarle el sort dentro de un if. Por lo que he leido el if del awk es bastante simple y la verdad es que no se muy bien como hacerlo. Si alguien me puede arrojar algo de luz....Muchas gracias por vuestro tiempo. Os pego más o menos mi problema

#!/bin/bash

<codigo>

awk -F ":" '
{
if ($(NF) <5) <--- campo numerico de referencia
print $0 | sort - t: -r -k3 > "NO_VALIDO"; <----Esto es lo que no funciona
else
print $0 > "VALIDO" <--Esto si que funciona pero logicamente sin ordenar los pasa tal y como los lee. En principio no válido
}' salida.txt

si hago cat NO_VALIDO | sort -t: -r -k3 >otroNO_VALIDO.txt hace lo que busco es por esto que creo que algo me paso. Gracias otra vez

EM


Reply to: