Ich habe mehrere Dateien:
Datei 1
a 1 2
b 3 2
Datei 2
a 2 2 3
b 4 3 3
Datei 3
d 3 1 2 4
e 4 1 1 2
Ich möchte die Dateien nach der Spalte neben der letzten Spalte sortieren, nach dem Sortieren:
Datei 1
A32
B12
Datei 2
eine 233
b 423
Datei 3
d 3 124
e 4 112
Ich verwende 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
Gibt es eine bessere Möglichkeit, das zu tun?(Bei der Verwendung von awk gibt es einige Probleme, wenn n (Spalten) groß ist)
Danke,
Antwort1
Versuchen Sie es mit etwas wie
for i in f*; do
echo "=== $i" ;
N=$( echo $( head -1 $i | wc -w ) -1 | bc );
sort -nrk$N $i;
done