Linux에서 마지막 열 옆에 열 정렬

Linux에서 마지막 열 옆에 열 정렬

파일이 여러 개 있습니다.

파일 1

a 1 2

b 3 2

파일 2

a 2 2 3

b 4 3 3

파일 3

d 3 1 2 4

e 4 1 1 2

정렬 후 마지막 열 옆의 열에 따라 파일을 정렬하고 싶습니다.

파일 1

2

12

파일 2

2

비 42

파일 3

디 3 124

전자 4 112

나는 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

더 좋은 방법이 있나요?(awk를 사용하면 n(열)이 큰 경우 문제가 좀 있습니다)

감사해요,

답변1

다음과 같이 시도해보십시오.

for i in f*; do
  echo "=== $i" ;
  N=$( echo $( head -1 $i | wc -w ) -1 | bc );
  sort -nrk$N $i;
done

관련 정보