如何使用内置的“排序”程序同时按两个字段(一个数字,一个字符串)进行排序?

维杰:

我有一个文件,比方说“ bigfile”,具有以下形式的表格数据,

a1 b2 a3 1
b1 a2 c3 0
...依此类推。

我想在Linux计算机上使用内置的“排序”程序,因此请按第四个字段(数字)然后同时按第一个字段对该文件进行排序。我翻阅了几次手册页,然后想出的只是,

sort -n -k4,4 -k1,1 bigfile

有没有一种方法可以使“排序”执行我想要的操作,或者我必须编写自己的自定义程序?

谢谢。

噪音:

从联机帮助页:

POS是F [.C] [OPTS],其中F是字段编号,C是字段中的字符位置;两者都是起源1。如果-t和-b均无效,则将从前一个空格的开头开始计算字段中的字符。OPTS是一个或多个单字母排序选项,它会覆盖该键的全局排序选项。如果没有给出密钥,则使用整行作为密钥。

sort -k4,4n -k1,1 bigfile 应该这样做。

另一个选择是sort -k1,1 bigfile | sort --stable -n -k4,4“稳定排序”,这意味着第4个字段上的平局由初始位置解决,该位置由排序的第一个遍历设置为第一个字段。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何替换两个字符串,以使一个字符串最终不会替换另一个字符串?

如何知道一个字符串是否可以分为两个字符串

在两个字符串之间替换一个字符串

C ++中是否有std :: string的内置函数来按字母顺序比较两个字符串(当一个字符串可以是大写还是小写)?

如果两个字符串仅相差一个字符,则返回True

如何用另一个字符串的前两个字符替换一个字符串的前两个字符?

如何比较两个字符串数组并将匹配值存储在另一个字符串数组中?

如何在SQL Server列的两个字符串之间选择一个字符串?

将两个字符串合并为一个字符串

对具有相同字符串的一个字符和数字以及日期逻辑进行排序

RegEx捕获两个数字之间的第一个字符串

如何在扑镖中从两个字符串生成一个字符串/哈希

如何用C ++中的两个字符串向量创建一个字符串?

如何区分一个字符串中的两个字符串?(如何防止纯文本注入)

如何在Java中从ENUM的两个字符串之间随机选择一个字符串?

MySQL按多少顺序排序像一个字符串

从一个或两个数字中去除一个字符串

根据第一个字符对字符串进行排序

使用LINQ将两个字符串字段合并到一个字符串数组中

如果最多两个字符不同,则匹配一个字符串

如何将一个字符串分成两个,然后将其中一个字符串变成一个数字[php]

如何从一个字符串中一次读取两个字符并复制到另一个字符串中

SQLite按字符串中的最后一个字符对行进行排序

如何使用IF针对一个变量测试两个字符串

如何将一个字符串分成两个字符串?

如何测试两个字符串是否同时出现在另一个字符串中?

将一个字符串拆分为两个字符串

用两个字符的间隔分割一个字符串

Python 按最后 3 个字符和一个数字对字符串列表中的字符串进行排序