linux - 在Linux shell脚本中对多列进行排序

标签 linux shell sorting

我想对具有多列的文件进行排序,就像对第一列的一个唯一条目进行排序一样,然后对与第一个条目相关的第二列进行排序。例如我的输入文件是这样的:

192.168.1.10 10 www.google.it
192.168.4.10 14 www.google.it
192.168.1.10 20 www.google.it
192.168.1.10 15 www.google.it
192.168.5.10 11 www.google.it
192.168.6.10 31 www.google.it
192.168.1.10 24 www.google.it
192.168.6.10 25 www.google.it

如果我想在linux shell中对其进行排序,它应该变成这样:

192.168.1.10 10 www.google.it
192.168.1.10 15 www.google.it
192.168.1.10 20 www.google.it
192.168.1.10 24 www.google.it
192.168.4.10 14 www.google.it
192.168.5.10 11 www.google.it
192.168.6.10 25 www.google.it
192.168.6.10 31 www.google.it

怎么做?

最佳答案

man sort,您将得到以下输出:

-k, --key=POS1[,POS2]
       start a key at POS1 (origin 1), end it at POS2 (default end of line). See POS syntax below

sort命令确实支持多级排序,例如:

sort -t ',' -k1,1 -k3,3 test.txt

将首先按第一列对 test.txt 进行排序,然后按第三列排序。

关于linux - 在Linux shell脚本中对多列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27473981/

相关文章:

r - 如何从 R 中运行多命令 Linux shell 脚本?

c - 用于区分 arm-none-eabi-gcc 和 gcc 的预定义宏

linux - awk 打印以正则表达式开头的行(IP 地址)

Python 按特定定义的规则对项目进行排序

objective-c - 按NSString将NSMutablearray排序为日期

python - Django:将计算应用于查询集

在没有 X Window 的情况下在 C 中捕获 GNU/Linux 中的击键

java - "run a sh file from jsp page code error"

linux - 如何以优化的方式用多行替换exec文件中的字符串

c - setuid 不改变 uid