|
藍森林 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表示向上偏移一行 |
| |