Tengo varios archivos:
Archivo 1
a 1 2
b 3 2
Archivo 2
a 2 2 3
b 4 3 3
Archivo 3
d 3 1 2 4
e 4 1 1 2
Me gustaría ordenar los archivos según la columna al lado de la última columna, después de ordenar:
Archivo 1
a32
b12
Archivo 2
un 233
segundo 423
Archivo 3
re 3 124
mi 4 112
Estoy usando awk:
while read line
do
cat $line|awk '{print $(NF-1)"\t"$0}'|\
sort -n -r|awk '$1=" " {print $0}' > $line.sorted.txt
done < listfile.txt
¿Hay alguna manera mejor de hacerlo?(Al usar awk, hay algunos problemas cuando n (columnas) es grande)
Gracias,
Respuesta1
Prueba con algo como
for i in f*; do
echo "=== $i" ;
N=$( echo $( head -1 $i | wc -w ) -1 | bc );
sort -nrk$N $i;
done