shell正则表达式及一些排序命令
文章目录
一、sort命令
—以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序
语法格式:
sort [选项] 参数
cat file l sort 选项
常用选项:
选项 | 解释 |
---|---|
-f | 忽略大小写,默认会将大写字母排在前面 |
-b | 忽略每行前面的空格 |
-n | 按照数字进行排序 |
-r | 反向排序 |
-u | 等同于uniq,表示相同的数据仅显示一行 |
-t | 指定字段分隔符,默认使用[Tab]键分隔 |
-k | 指定排序字段 |
-o<输出文件> | 将排序后的结果转存至指定文件 |
sort -n testfile2
sort -t ':' -k 3 -n /etc/passwd
du -a l sort -nr -o du.txt
数字
[root@localhost opt]# sort ypy1.txt
1
100
145
2
233
3
333
333
353
444
45
555
57
666
77
777
787
##什么都不加直接排序会直比较第一个数字的大小进行排序
加了-n后
[root@localhost opt]# sort ypy1.txt -n
1
2
3
45
57
77
100
145
233
333
333
353
444
555
666
777
787
##就会按照数字本身的大小进行默认有小到大排序
在此基础上加-r会倒排序
[root@localhost opt]# sort ypy1.txt -nr
787
777
666
555
444
353
333
333
233
145
100
77
57
45
3
2
1
再在此基础上加-u
[root@localhost opt]# sort ypy1.txt -nru
787
777
666
555
444
353
333
233
145
100
77
57
45
3
2
1
##之前相同的数值会只显示一行
[root@localhost opt]# cat /etc/passwd | sort -t ':' -k3 -k 4 -n
## 查看此目录文件里的内容,用管道符号连接并用sort命令排列-t ':'意思是用冒号当分隔符,-k是指定排序字段最后-n根据数字排序
执行
nobody:x:99:99:Nobody:/:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
gnome-initial-setup:x:991:986::/run/gnome-initial-setup/:/sbin/nologin
sssd:x:992:987:User for sssd:/:/sbin/nologin
setroubleshoot:x:993:988::/var/lib/setroubleshoot:/sbin/nologin
geoclue:x: