Tente com algo como
for i in f*; do
echo "=== $i" ;
N=$( echo $( head -1 $i | wc -w ) -1 | bc );
sort -nrk$N $i;
done
Eu tenho vários arquivos:
Arquivo 1
a 1 2
b 3 2
Arquivo 2
a 2 2 3
b 4 3 3
Arquivo 3
d 3 1 2 4
e 4 1 1 2
Gostaria de ordenar os arquivos de acordo com a coluna ao lado da última coluna, depois de ordenar:
Arquivo 1
a 3 2
b 1 2
Arquivo 2
a 2 3 3
b 4 2 3
Arquivo 3
d 3 1 2 4
e 4 1 1 2
Estou usando o 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
Existe alguma maneira melhor de fazer isso? (Usando o awk, existem alguns problemas quando n (colunas) é grande)
Obrigado,
Tente com algo como
for i in f*; do
echo "=== $i" ;
N=$( echo $( head -1 $i | wc -w ) -1 | bc );
sort -nrk$N $i;
done