从Linux手册: 通过键排序; KEYDEF给出位置和类型。k参数在排序函数(Linux Bash Scripting)中做了什么?
我不知道那意思,但我看到了正在使用的是这样的:
cut -f 2 *ptt | tail -n +4 | sort | uniq -c | sort -k1 -rn
再然后是这样的:
ls -1 *\.flv | sort -n -k1.2
从Linux手册: 通过键排序; KEYDEF给出位置和类型。k参数在排序函数(Linux Bash Scripting)中做了什么?
我不知道那意思,但我看到了正在使用的是这样的:
cut -f 2 *ptt | tail -n +4 | sort | uniq -c | sort -k1 -rn
再然后是这样的:
ls -1 *\.flv | sort -n -k1.2
KEYDEF是F [.C] [ OPTS] [,F [.C] [OPTS]]用于开始和停止位置,其中F是字段号,C是字段中的字符位置;两者都是原点 1,停止位置默认为行结束。如果-t和-b均不起作用,则字段中的字符将从前面的空格的起始 开始计数。 OPTS是一个或多个单字母订购选项[bdfgiMhnRrV],它覆盖该密钥的全局订购选项。 如果没有给出密钥,则使用整行作为密钥。
一个例子的输入文件:
123 233
214 176
341 325
排序上的第一个字段:
sort -t' ' -k1 input
给出:
123 233
214 176
341 325
第二字段:
sort -t' ' -k2 input
给出:
214 176
123 233
341 325
第二和第一场的第三位:
sort -t' ' -k1.2 input
给出:
214 176
123 233
341 325
末挖它的第二个字段:
sort -t' ' -k2.3 input
给出:
123 233
341 325
214 176
在比手动的页面少言:它规定了什么“一栏中的”文件排序。如果列号包含句点,则该句点之后的值将用作该字段内的偏移量。例如,-k1.2
按第一列的第二个字符排序。
列通常由制表符分隔,但您可以使用-t
更改该列。例如,-t,
将使用以逗号(例如,CSV文件)分隔的列。
默认情况下(至少在coreutils 8.22中)是基于*空格*拆分列,而不是制表符。 –