sort命令常用参数

sort 对文本文件中所有行进行排序

语法形式

sort [选项] [参数]
sort [选项] [选项]  [参数]

选项

				#<=> cat 文件 | sort  默认第一列内容进行排序(从小到大)
-r				#第一列内容进行排序(从大到小);
-n				#按照数字正序排序;
-rn				#逆序排序;
-k[num]			#按照第n列进行排序;
-k[n1],[n2]		#按照第n1列,第n2列(若第n1列相同则比较第n2列)进行排序
-h      		#根据存储容量排序(注意使用大写字母,例如:2K 1G)。
-t[符号] 		   #指定分隔符

注意

#在选项中:
#		-rnk[num]	三个选项可以连在一起使用
#		-rhk[num]	三个选项可以连在一起使用
##		-n 和 -h		两个选项互相冲突,不能一起使用
##		-t[符号]		与所有选项都冲突,需要单独使用

示例

#将文件按照第二列的大小逆序排序
[root@Dezyan ~]# sort -rnk2  num.txt
#将/var/log中的所有文件和目录按大小排序
[root@Dezyan ~]# du -sh /var/log/* | sort -rhk1
#根据/etc/passwd 第3列按照大小逆序排序
[root@Dezyan ~]# sort -rnk3  -t: /etc/passwd | head -3
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
deyzan:x:12346:12346::/home/deyzan:/bin/bash
docker:x:12345:12345::/home/docker:/sbin/nologin

#排序:在ip.txt文件中,以.为分隔符,按照第3列,第4列(若第三列相同则比较第四列)进行从小到大排序
[root@Dezyan ~]# sort -t. -k3,4 ip.txt
### sort 命令参数及其用法 #### 一、sort 命令概述 `sort` 是 Linux 系统中的一个常用命令,用于对文本文件的内容进行排序。它可以按照字母顺序、数值大小、日期时间等多种方式进行排序,并支持多种选项以满足不同的需求[^3]。 #### 二、sort 命令的基本语法 ```bash sort [选项] 文件名 ``` #### 三、sort 命令常用参数 1. **默认排序** 默认情况下,`sort` 按照 ASCII 码顺序对文件内容进行排序[^2]。 ```bash sort testfile ``` 2. **忽略空白字符(-b)** `-b` 参数可以忽略每行开头的空格或制表符。 ```bash sort -b testfile ``` 3. **检查是否已排序(-c)** 使用 `-c` 参数检查文件是否已经按顺序排列。如果未排序,则会报错。 ```bash sort -c testfile ``` 4. **忽略非打印字符(-d)** `-d` 参数在排序时忽略非打印字符,仅处理英文字母、数字和空格。 ```bash sort -d testfile ``` 5. **忽略大小写(-f)** `-f` 参数将所有小写字母视为大写字母进行排序。 ```bash sort -f testfile ``` 6. **忽略不可见字符(-i)** `-i` 参数忽略所有不可见字符,仅处理 ASCII 字符集中的可见字符。 ```bash sort -i testfile ``` 7. **合并已排序文件(-m)** `-m` 参数可以将多个已排序的文件合并为一个排序后的文件。 ```bash sort -m file1 file2 ``` 8. **按月份排序(-M)** `-M` 参数按照月份缩写(Jan, Feb, Mar...)进行排序。 ```bash sort -M dates.txt ``` 9. **按数值排序(-n)** `-n` 参数按照数值大小进行排序,而非 ASCII 码顺序。 ```bash sort -n numbers.txt ``` 10. **去重(-u)** `-u` 参数确保输出结果中没有重复行。 ```bash sort -u duplicates.txt ``` 11. **指定分隔符(-t)** `-t` 参数用于指定字段分隔符,默认为空白字符(空格或制表符)。 ```bash sort -t: -k 3,3n /etc/passwd ``` 12. **指定排序字段(-k)** `-k` 参数指定按照哪一列进行排序,列号从 1 开始计数。 ```bash sort -k 2,2n testfile ``` 13. **倒序排序(-r)** `-r` 参数将排序结果反转,即从大到小排序。 ```bash sort -r testfile ``` 14. **输出到文件(-o)** `-o` 参数将排序结果保存到指定文件中。 ```bash sort -o sorted.txt testfile ``` 15. **随机排序** 虽然 `sort` 没有直接提供随机排序功能,但可以通过 `-R` 参数实现随机排序。 ```bash sort -R testfile ``` #### 四、NR 的使用场景 `NR` 并不是 `sort` 命令的一部分,而是 `awk` 中的一个内置变量,表示当前处理的行号。如果需要结合 `NR` 和 `sort` 实现某些功能,可以通过以下方式: ```bash awk '{print NR, $0}' testfile | sort -n -k1,1 ``` 此命令为每一行添加行号后,按照行号进行排序[^1]。 ### 示例代码 以下是一些常见的 `sort` 命令用法示例: 1. 按第二列数值降序排序 `/etc/passwd` 文件: ```bash sort -t: -k 3,3nr /etc/passwd ``` 2. 对文件内容去重并排序: ```bash sort -u duplicates.txt ``` 3. 将排序结果保存到新文件中: ```bash sort -o sorted.txt testfile ``` 4. 随机排序文件内容: ```bash sort -R testfile ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值