2013-03-14 19 views
0

我對腳本非常陌生,所以請原諒我,如果這是一個非常明顯的問題。我在Bourne shell中寫了一個約會跟蹤腳本(不幸的是,必須使用Bourne)。我需要有由7列由冒號這樣分開的每一個預約日期順序約會排序:使用awk和排序後重新插入分隔符

1:26:2013:星期六:16.00:17.30:燒烤
1:24:2013:週四:14.00:15.10:CSS會議
1:25:2013:週五:12.00:12.30:商務午餐
1:27:2013:星期日:10.00:17.30:志願者海灘清理
2:24:2013:星期日: 20.00:24.00:派對
2:11:2013:星期一:16.00:17.30:牙醫訪問
1:24:2013:星期四:11.00:11.45:項目會議
3:24:2013:星期日:8.00:11.30:教堂野餐
2:8:2013:週五:12.00:17.30:最後一戰的比賽
1:19:2013:星期六:16.00:20.30:撲克

這裏是我到目前爲止,這正是我想要的除了它拿出我的冒號分隔符。 awk -F : '{print $1, $2, $3, $4, $5, $6, $7 |"sort -k 1,1 -k 2,2n -k3,3n -n -o appts.txt"}' appts.txt

1 19 2013星期六16.00 20.30撲克
1 24 2013週四11.00 11.45項目會議
1 24 2013週四14.00 15.10 CSS會議
1月25日2013週五12.00 12.30商務午餐
1月26日2013星期六16.00 17.30燒烤

如何得到我的冒號分隔符?

+0

不應該排序順序是'-k 3n -k 1n -k 2n'或類似的東西嗎? – Thomas 2013-03-14 01:52:57

回答

3

最簡單的答案是,沒有在第一時間刪除。至少在我的版本的排序,它按預期工作與原文件:

sort -k 1,1 -k 2,2n -k3,3n -n -o appts2.txt < appts.txt 

雖然,它也支持顯式指定字段分隔符(-t)。所以爲了安全起見,你可以說:

sort -k 1,1 -k 2,2n -k3,3n -n -t: -o appts2.txt < appts.txt 
+0

在發佈之前就明白了,但是謝謝! – user1731199 2013-03-14 02:21:40

2

我很可笑......不知道爲什麼我首先使用了awk。

這做了什麼,我想就好

sort -k 1,1 -k 2,2n -k3,3n -n -t: -o appts.txt appts.txt