linux 按照第一列去重,Linux sort命令使用方法

sort命令在Linux中主要用于对文件/字符串进行排序,并将排序结果输出。sort命令输入可以是指定的文件或数据流。本文主要介绍sort命令的基本语法和常见使用实例。

sort命令语法

sort命令格式:sort [选项] 文件名

选项:

-n:按数字排序。默认是以ASCII值进行排序。

-t:指定分隔符。默认分隔符是空格或者tab键分隔

-b:使用域进行分类,忽略前面空格。

-r:逆向排序

-u:删除所有重复行

-o:后面跟文件名,存储sort输出结果。主要是可以实现原地置换。比如sort file.txt -o file.txt

-c:判断文件是否已经分类

-m:合并两个分类文件

选项使用说明:

(1)-n选项,按照数字进行排序。默认情况下sort命令是以ASCII值进行排序。下面查看sort不带参数n和带参数n的执行情况。

$ echo -e "123\n26\n3" |sort

123

26

3

$ echo -e "123\n26\n3" |sort -n

3

26

123

(2)-r选项,以降序排序输出。默认情况下是以升序输出。

$ echo -e "123\n26\n3" |sort -nr

123

26

3

(3)-u选项,去掉重复行,相当于uniq命令。

$ echo -e "123\n26\n26\n3\n123" |sort -u

123

26

3

(4)-c选项,判断文件是否已经分类,如果已分类,不输出内容。如果未分类,提示无序。

$ echo -e "12\n36\n45" |sort -nc

$ echo -e "12\n36\n5" |sort -nc

sort:-:3:无序: 5

说明:例子中带参数-n表示以整数排序是否有序。

(5)-t选项,指定分隔符。默认情况下sort命令分隔符是以空格或者多个空格做为分隔符。

$ echo -e "Java:12\nPython:3\nRuby:21" | sort -t ':' -nrk2

Ruby:21

Java:12

Python:3

(6)-o选项。后面跟文件名,保存sort输出结果。主要是可以实现原地置换。

$sort -t':' -nrk3 file.txt -o file.xt

sort命令典型实例

(1)文件中行分隔符为冒号":",要求先按第三列数字大小排序,再按照第一列数字大小排序,结果以降序输出

$ echo -e "1:Python:15\n2:Python:5\n3:Ruby:25\n4:Python:15" | sort -t':' -k3 -k1 -nr

3:Ruby:25

4:Python:15

1:Python:15

2:Python:5

(2)将文件c.txt中的内容按照第一列内容进行去重。

ADD:USER="";

MOD:USER="";

ADD:USER="";

LST:USER="";

ADD:USER="";

LST:USER="";

MOD:USER="";

执行命令:cat c.txt | sort -t':' -k1,1 -u

$ cat c.txt |sort -t':' -k1, -u

ADD:USER="";

LST:USER="";

MOD:USER="";

小结

sort命令基本用法和常用实例大概就是这些了。。遇到排序相关问题就可以使用sort解决啦。。如果生疏了,就来这里看看。。

linux sort 命令详解(转 )

linux sort 命令详解 sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比 ...

Linux 常用命令使用方法大搜刮

Linux 常用命令使用方法大搜刮 1.# 表示权限用户(如:root),$ 表示普通用户  开机提示:Login:输入用户名  password:输入口令   用户是系统注册用户成功登陆后,可以进入 ...

linux sort命令学习

linux sort命令以行为单位对文本文件进行排序. 接下来我们会以/tmp/sort_test.txt这个文本文件为例对sort命令的用法进行说明. sh-# cat /tmp/sort_test ...

【转】linux sort 命令详解

sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按AS ...

linux sort 命令实用手册

Linux 中的sort 命令是一个很实用的工具,用于对文本内容以行为单位进行ASCII 码排序,默认按照升序进行排序(当然也可以按照降序). sort 命令的格式如下: sort `参数` `文件名 ...

linux sort 命令详解

sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按AS ...

Linux sort命令中文手册(info sort翻译)

说明: (1).本手册只挑选了有用的信息进行翻译,如要查看完完整整的内容,请自行info sort. (2).译文中,在括号中使用了"注"的,为本人所加,非原文内容,助于理解和说明 ...

Linux sort命令详解

linux之sort用法 sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式: sort [-bcfMnrtk][源文件][-o 输出文件] 补充说明:sort可针对文本文件的内容, ...

[转]linux sort 命令详解

原文网址:http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html 1 sort的工作原理 sort将文件的每一行作为一个单位,相互 ...

随机推荐

linux基础

用户管理: id:可以查看当前用户 whoami:查看当前的用户 who:看当前已经登录的用户  w:也可以看 添加用户:useradd name 添加用户组: useradd -g groupnam ...

Md5 签名算法

///         /// MD5签名        ///         ///

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Linux中以列去重,可以使用awk命令结合sort和uniq命令。首先,使用awk命令提取需要去重的列,然后使用sort命令对该列进行排序,最后使用uniq命令进行去重。 例如,如果我们有一个文件file.txt,包含两列name和age,我们想要以name列进行去重,可以使用以下命令: awk -F, '{print $1}' file.txt | sort | uniq 其中,-F,表示以逗号作为列分隔符,'{print $1}'表示打印第一列name。然后,使用sort命令对该列进行排序,再使用uniq命令进行去重。这样就可以实现以列去重的目的。 请注意,如果需要基于其他列进行去重,只需将'{print $1}'中的$1替换为相应的列号即可。 #### 引用[.reference_title] - *1* *3* [【linuxlinux去重方法](https://blog.csdn.net/LySunflower/article/details/127985765)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Linux文本使用uniq去重](https://blog.csdn.net/fushan2012/article/details/130010487)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值