如何在Linux中按指定列排序.txt文件?
按指定列排序文本文件的
sort命令用法 嘿,作为Linux新手能想到用sort命令来解决这个排序需求,已经找对方向啦!咱们把这个问题拆解清楚,一步步实现你要的功能:
核心用法:用-k参数指定排序列
sort命令默认是按整行的字典序排序,但要按指定列排序的话,关键参数是-k(代表key),语法很简单:
sort -k N your_file.txt
这里的N就是你要排序的列数,比如你说的按第2列(second_name)排序,直接运行:
sort -k 2 your_file.txt
适配你的脚本场景
因为你是在telcat脚本里读取变量N,所以脚本里的命令要写成这样(记得给变量加双引号,避免特殊字符或空格导致的问题):
# 假设你的文本文件名为contacts.txt sort -k "$N" contacts.txt
这样当脚本里的N被赋值为2时,就会自动按second_name排序;赋值为4时,就按phone number排序,完全符合你的需求。
额外实用选项(新手友好)
- 如果某一列是数字(比如phone number),想要按数值大小排序而不是字典序,加上
-n参数:sort -n -k 4 your_file.txt - 想要倒序排序?加上
-r参数就行:sort -r -k 2 your_file.txt - 如果你的文件里有连续多个空格作为分隔符,不用担心,
sort默认会把连续的空白字符(空格、制表符等)当成一个分隔符,不需要额外处理。
内容的提问来源于stack exchange,提问作者Philipp
相关产品推荐
相关产品推荐

