Linux-xargs-seq-tr-uniq-sort

Linux-xargs-seq-tr-uniq-sort


一、xrags

| 将前面一个命令的正确的输出送给后面的命令作为输入
xargs 将前面命令的输出送给后面的命令作为参数使用
bash 复制代码
[root@hz shell]# which mkdir
/usr/bin/mkdir
[root@hz shell]# which mkdir| ls -l
总用量 76
drwxr-xr-x. 2 root root   6  5月 16 16:03 20250516160231
-rw-r--r--. 1 root root 265  5月 27 18:05 back_log.sh
-rw-r--r--. 1 root root 399  5月 27 18:35 backup_log.sh
-rw-r--r--. 1 root root 526  5月 18 14:05 create_file.sh
-rw-r--r--. 1 root root 502  5月 18 17:10 create_user.sh
...

[root@hz shell]# which mkdir|xargs ls -l
-rwxr-xr-x. 1 root root 69872  4月 21  2024 /usr/bin/mkdir

二、seq

seq - print a sequence of numbers

用于生成连续或指定步长的数字序列,常用于循环、测试或生成固定格式的输入

生成1-5的数字

root@hz shell# seq 5

1

2

3

4

5

步长值默认为+1

root@hz shell# seq 5 10

5

6

7

8

9

10

root@hz shell# seq 10 -1 5

10

9

8

7

6

5

等长

root@hz shell# seq -w 5 10

05

06

07

08

09

10


三、tr

tr - translate or delete characters

  1. 转换字符

    字母是分别转换的

    root@hz shell# echo "abcdaaabbccdd"|tr abc 123

    123d1112233dd

    将/etc/passwd文件里的小写字母转换为大写

    root@hz shell#cat /etc/passwd|tr "[a-z]" "[A-Z]"

    替换不能为空

    root@hz shell#cat /etc/passwd|tr "0-9" ""

    tr: 当不截断设置1 时,字符串2 不能为空

    删除所有的数字

    root@hz shell#cat /etc/passwd|tr -d "[0-9]"

  2. 删除字符

    -d, --delete

    delete characters in SET1, do not translate

    去除%

    root@hz shell# df -Th|grep "/boot"

    /dev/sda1 xfs 960M 225M 736M 24% /boot

    root@hz shell# df -Th|grep "/boot"|awk '{print $6}'

    24%

    root@hz shell# df -Th|grep "/boot"|awk '{print $6}'|tr -d "%"

    24

    去重,重复的字符串,只显示一个

    root@hz shell# echo "111111111112333333333333"|tr -s "13"

    123


四、uniq

uniq - report or omit repeated lines uniqe 唯一

用于筛选或统计相邻的重复行(需先排序,否则非相邻重复行无法识别)

-c 统计重复的次数 count
-u 统计不重复的行

bash 复制代码
[root@hz shell]# cat test.txt|uniq -c
      6 sanchuang1
      1 sanchuang2
      1 
      3 sanchuang1
      1 sanchuang3
      2 sanchuang1

[root@hz shell]# cat test.txt|sort		# 排序

sanchuang1
sanchuang1
sanchuang1
sanchuang1
sanchuang1
sanchuang1
sanchuang1
sanchuang1
sanchuang1
sanchuang1
sanchuang1
sanchuang2
sanchuang3
[root@hz shell]# cat test.txt|sort|uniq -c
      1 
     11 sanchuang1
      1 sanchuang2
      1 sanchuang3

[root@hz shell]# cat test.txt|uniq -u
sanchuang2

sanchuang3
[root@hz shell]# cat test.txt|sort|uniq -u

sanchuang2
sanchuang3

五、sort

sort 默认情况下,排序的时候是根据字符串的ASCII码值进行比较,一个字符一个字符的比较,默认是升序

-n 把数字当做一个整体的数值来比较
-r 降序
-k 指定哪一列为排序键

bash 复制代码
[root@hz shell]# cat grade.txt 
id	name	sex	chinese	English	math
1	cali	m	80		70		60
2	rose	f	90		98		97
3	tom	    f	70		60		60
4	jack	m	99		99		68
# 按math排序
[root@hz shell]# cat grade.txt |sort -k 5
3	tom	    f	70		60		60
1	cali	m	80		70		60
2	rose	f	90		98		97
4	jack	m	99		99		68
id	name	sex	chinese	English	math
# 整体数值比较
[root@hz shell]# cat grade.txt |sort -k 5 -n
id	name	sex	chinese	English	math
3	tom	    f	70		60		60
1	cali	m	80		70		60
2	rose	f	90		98		97
4	jack	m	99		99		68
# 降序
[root@hz shell]# cat grade.txt |sort -k 5 -nr
4	jack	m	99		99		68
2	rose	f	90		98		97
1	cali	m	80		70		60
3	tom	    f	70		60		60
id	name	sex	chinese	English	math
[root@hz shell]# cat grade.txt |sort -k 5 -nr|head -1
4	jack	m	99		99		68

sort -t 指定字段分割符(默认是空白)

对/etc/passwd文件进行排序,基于uid的大小进行降序排列

cat /etc/passwd|sort -k 3 -t ":" -nr

查看访问量最大的2个地址

awk '{print $1}' access_log|sort|uniq -c|sort -nr|head -2

对/etc/passwd文件进行排序,基于gid(第4列)的大小进行升序排列,取gid最小的前6行

cat /etc/passwd|sort -k 4 -t ":" -n |head -6


总结

xargs、seq、uniq、tr、sort是一组常用的文本处理和批处理工具,它们常通过管道组合使用,完成复杂的文本处理或任务自动化

相关推荐
Yana.nice5 小时前
Linux 只保留 30 天内日志(find命令删除日志文件)
linux·运维·chrome
2601_960567968 小时前
电商套图自动化效率的工程量化分析——从逐张生成到批量套图的架构演进
运维·架构·自动化
吳所畏惧9 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
DFT计算杂谈9 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
HiDev_9 小时前
【非标自动化】2、认识元器件(确定目标)
运维·自动化
维天说10 小时前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json
Zhang~Ling10 小时前
从 fopen 到 struct file:从零开始拆解 Linux 文件 I/O
linux·运维·服务器
DeeplyMind10 小时前
Linux 深入 per-VMA lock:Linux 缺页路径如何摆脱 mmap_lock
linux·per-vma lock
爱写代码的阿森10 小时前
鸿蒙三方库 | harmony-utils之PreferencesUtil首选项数据监听详解
服务器·华为·harmonyos·鸿蒙·huawei
爱写代码的森10 小时前
蒙三方库 | harmony-utils之FileUtil文件重命名与属性查询详解
linux·运维·服务器·华为·harmonyos·鸿蒙·huawei