藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 http://www.lslnet.com 2006年6月26日 11:18


請教如何對文件的一部分排序

我有一個文件需要排序。
part1和part2之間各行按照逗號前面部分排序
part2和part3之間各行按照逗號後面部分排序
part3之後各行簡單排序
帶橫線「---- part x--- 」也是文件中的行

sort部分我會寫「sort -k2 file」,但是不知道怎麼將一個文件分成幾個部分來排序?而且part1和part2之間各行排序完了還要在part1和part2之間。

多謝各位了!

排序前文件:
-------- part 1 ------------
a,3
f,2
e,5
3,1
-------- part 2 ------------
bb,44
ss,23
3,1
b,5
-------- part 3 ------------
2
4
1
3

排序後文件:
-------- part 1 ------------
3,1
a,3
e,5
f,2
-------- part 2 ------------
3,1
b,5
bb,44
ss,23
-------- part 3 ------------
1
2
3
4

請教如何對文件的一部分排序

vim -c ":2,5!sort  -t, -k1\|:7,10!sort -t, -kn2\|:12,15!sort -n" file

請教如何對文件的一部分排序

我的文件僅僅是一個格式的例子。實際上是一個每天統計腳本的例子。

分隔符「-------- part 1 -------」「-------- part 2 -------」「-------- part 3 -------」文字是固定的,但是不能確定分隔符具體在第幾行也就是兩個分隔符之間的行數是不確定的。

一定要動態的找到分隔符之間的行再排序。

請教如何對文件的一部分排序

改一下就ok了
vim -c ":/part 1/+1,/part 2/!sort  -t, -k1......
+1表示向下偏移一行,-1表示向上偏移一行



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com