Shell 按照列对数据进行排序 元数据
GET //api/ 12 100.122.183.158
GET //api/ 11 100.122.183.158
GET //api/ 21 100.122.183.158
GET //api/ 21 100.122.183.158
GET //api/ 23 100.122.183.158
GET //api/ 2 100.122.183.158
GET //api/ 2 100.122.183.158
GET //api/ 26 100.122.183.158
GET //api/ 22 100.122.183.158
GET //api/ 21 100.122.183.158
使用awk进行排序
for i in $(awk -F ' ' '{print NR,$3}' data.txt | sort -rn -k2 | awk '{print$1}')
do
awk 'NR=='$i' {print}' data.txt
done
其中awk -F ' ' '{print NR,$3}' data.txt | sort -rn -k2 | awk '{print$1}'
取出按照第三列进行从大到小排序后的行号sort -rn -k2
按照第二列进行逆序排序