【发布时间】:2014-03-12 04:19:10
【问题描述】:
下面给出了需要在 Linux 中排序的文件(未排序文件)中的列表,最好在单行 linux 命令中。
03123456789abcd
02987654321pqrs
02123456789mnop
03987654321stuv
04123456789ghjk
01000000000
99000000000
97000000000
98000000000
所需的排序文件输出:
01000000000
02123456789mnop
03123456789abcd
04123456789ghjk
02987654321pqrs
03987654321stuv
97000000000
98000000000
99000000000
要求:
- 如果前两个字符是 01,那么它就是标题
- 如果前两个字符大于 90,则它们是预告片
- 排序顺序:位置 3 - 11,然后是位置 1 - 2
我尝试了一个简单的排序命令,例如
$sort unsorted-file > sorted-file.
要求 3 失败。然后我尝试了
$sort -k 1.3, 1.11 -k 1.2 unsorted-file > sorted-file
由于位置 3 的全为零,预告片记录位于文件顶部。
我知道的其他选项是去掉标题和预告片;对文件进行排序并将头文件和尾文件合并回来。有没有办法在一个 linux(复杂)命令本身中执行?
感谢您的宝贵时间。
-R-
【问题讨论】:
标签: regex linux sorting unix grep