<分区>
有一行:
00000000000000;000022233333;2;NONE;true;100,100,5,1,28;UNKNOWN
需要排序100
,100
,5
,1
,28
数字降序排列。
例子:
00000000000000;000022233333;2;NONE;true;100,100,28,5,1;UNKNOWN
<分区>
有一行:
00000000000000;000022233333;2;NONE;true;100,100,5,1,28;UNKNOWN
需要排序100
,100
,5
,1
,28
数字降序排列。
例子:
00000000000000;000022233333;2;NONE;true;100,100,28,5,1;UNKNOWN
最佳答案
试试这个;
#!/bin/bash
while read line
do
beforeC=$(echo "$line" | cut -f-5 -d';')
sortcolumn=$(echo "$line" | awk -F ";" '{print $6}' | tr -t , "\n" | sort -r -n | xargs | sed 's/ /,/g')
afterC=$(echo "$line" | cut -f7- -d';')
echo -e $beforeC";"$sortcolumn";"$afterC
done <file
user@host:/tmp/test$ cat file
00000000000000;000022233333;2;NONE;true;100,100,5,1,28;UNKNOWN
00000000000000;000022233333;2;NONE;true;99,100,5,1,28;UNKNOWN
00000000000000;000022233333;2;NONE;true;100,99,5,1,28;UNKNOWN
00000000000000;000022233333;2;NONE;true;100,100,4,1,28;UNKNOWN
00000000000000;000022233333;2;NONE;true;100,100,4,0,28;UNKNOWN
00000000000000;000022233333;2;NONE;true;100,100,4,1,27;UNKNOWN
user@host:/tmp/test$ ./sortAColumn.sh
00000000000000;000022233333;2;NONE;true;100,100,28,5,1;UNKNOWN
00000000000000;000022233333;2;NONE;true;100,99,28,5,1;UNKNOWN
00000000000000;000022233333;2;NONE;true;100,99,28,5,1;UNKNOWN
00000000000000;000022233333;2;NONE;true;100,100,28,4,1;UNKNOWN
00000000000000;000022233333;2;NONE;true;100,100,28,4,0;UNKNOWN
00000000000000;000022233333;2;NONE;true;100,100,27,4,1;UNKNOWN
关于linux - 在 BASH/Shell 上连续排序数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38652991/