I need to read the content of a file and sort the content by fixed width. Example file: sample_data.txt 23abdc1133cdde 14zzwd0034kkhe 65ppok7780hyyh Read in the content and sort text by fixed position (startpos:1,len:2)(startpos:3,len:4)(startpos:6,len:4) |
当然, 只有这三行代码没有太多意思, 我构建了如下的变量, 来让我们体会PowerShell中Sort-Object的强大.
|
这个字符串看起来真晕啊...排序比较key1是字符串的前两位, 排序比较key2是字符串3,4位. 最后所有的位是排序比较key3, key3实际是日期.
我将用这个看起来很混乱的字符串为你简单展示sort-object的两个强大特性:
1. 基于对象的比较;
2. 使用scriptblock来实现用户定义排序.
如下代码, 将根据最后10位所代表的日期, 对字符串进行排序:
|
通过使用datetime类型, 将字符串转换成对象, 排序的格式就可以是任意的. 怎么样, 感觉好用嘛??有中文会怎么样呢??来看一眼
|
太好了, 直接就被识别了, 很方便吧??
接下来, 我决定用key2减去key1的方式, 进行排序.
|
完成了, 这一次我编写了排序使用的scriptblock, 怎么样很方便吧??
最后我先按照key1排序, 之后用key3排序, 最后按照key2 - key1进行排序:
|
可以说, sort-object别名sort的强大允许你构造复杂的排序规则, 通过scriptblock的能够避免很多额外的操作. 最后要提一点, 可以对hash表进行排序哦. 我就不在演示, 希望大家能看看get-help sort-object的说明.