[英]How to sort an array of strings using substring with Bash
我正在寫我的第一個unix bash腳本,但是我發現這真的很困難,因為我以前從未使用過Linux。 是大學的功課。 我嘗試了很多東西,我一直在找幾個小時,但我根本找不到合適的解決方案。 有人可以給我一些如何使用數組對字符串進行排序的指示,如下所示:
room_100056.dat 4
room_8973.dat 2
room_7764.dat 1
room_2092.dat 20
對此:
room_7764.dat 1
room_8973.dat 2
room_10056.dat 4
room_2092.dat 20
在對初始數組進行排序時,我正在創建一個包含已排序數據的新數組。 問題是在排序數組中,數據的打印方式如下:
room_100056.dat
room_8973.dat
room_7764.dat
room_2092.dat
1
2
4
20
碼:
file=$1/*.dat
count_visits=()
for room in $file
do
visits=$(grep "<Visit>" $room | wc -l)
filename=$(basename $room)
count_visits+=($filename$'\t'$visits)
done
sorted_visits=($(echo ${count_visits[@]} | tr " " "\n" | sort -g))
printf '%s\n' "${sorted_visits[@]}"
exit
告訴sort
在數字上使用第二列:
printf '%s\n' "${count_visits[@]}" | sort -k2n
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.