我有一个文件trial.txt,我只想对其第四列进行排序而不更改其他列的顺序。 我的文件内容是这样的。对文件的单列进行排序而不干扰其他列
A user 9 12 ab
B user 2 9 cd
C user 5 13 da
我希望我的输出看起来像这样
A user 9 13 ab
B user 2 12 cd
C user 5 9 da
我试过这个。
sort -k 4 trial.txt
但它没有按预期给出输出。
我有一个文件trial.txt,我只想对其第四列进行排序而不更改其他列的顺序。 我的文件内容是这样的。对文件的单列进行排序而不干扰其他列
A user 9 12 ab
B user 2 9 cd
C user 5 13 da
我希望我的输出看起来像这样
A user 9 13 ab
B user 2 12 cd
C user 5 9 da
我试过这个。
sort -k 4 trial.txt
但它没有按预期给出输出。
使用:
sort -k4 -n -s trial.txt
除了k
选项,建议您使用-n
比较数字,-s
选项抑制不得已的比较。查看手册了解更多信息。 另外,如果使用-r
选项来反转排序模式,则您所需的输出显示为降序。
我很抱歉对问题给出了错误的解释。所以这是最终的答案。这很简单:
awk
获取文件trial.txt的第三列并将其保存在临时文件中。
谢谢你的建议,但这仍然不起作用。因为我使用-n来比较数字,但也不能正常工作,并且仍然给出与上面相同的输出。我想用sed或awk来完成它。因为,单独排序不能做到这一点。请使用一些sed和awk命令来看看这个。帮助将非常感激。 – user7515829
对不起,我误解了你的问题,我已经根据第4列对所有行进行了排序。 – Akash
这很好的阿卡什。因为我被困在这个问题的逻辑上。现在我想,它可以通过使用awk命令完成。我很困惑如何使用数组和循环。 – user7515829