sorting - 按给定字段对文本行进行排序

标签 sorting awk

我正在尝试对以下文本行进行排序:

bbb = 4
aaaaaaaa = 1a
c = 3aa
ddddd = 2aaaa

使用“=”后面的值作为排序键。我想要得到的是:

aaaaaaaa = 1a
ddddd = 2aaaa
c = 3aa
bbb = 4

请注意,第一个和第二个字段都可以具有任意长度。

如您所见,排序应该:1)标记“=”周围的每一行2)对第二个字段(即“=”后面的数字)进行排序,3)打印整行。

我设法组合了这个 awk 命令:

cat lines | awk -F "=" '{print $2 | "sort"}'

但这只会打印第二个字段,而不是整行。

有人可以帮助我吗? 谢谢

最佳答案

怎么样:

cat lines | sort -k 3

关于sorting - 按给定字段对文本行进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7351756/

相关文章:

python - 如何使用 "Nones last"对列表进行排序

c++ - <algorithm> 用对象进行 vector 排序?

linux - 获取最新的匹配字符串值

unix - 使用 awk 在每列中显示唯一值

bash - 函数读取参数或标准输入

bash - 使用 awk 删除前导零给出八进制结果

C# Winforms DataGridView 绑定(bind)新数据源时排序列丢失

while循环终止后的代码不运行

node.js - 在字符串列表中查找最相似的文本

linux - 根据键拆分文件并使用键名命名输出