管道" | "符号和xargs及exec的区别
1.管道符号 " | "
管道是一种通信机制,通常用于进程间的通信,它表现出来的形式将前面每一个进程的输出(stdout)直接作为下一个进程的输入
[root@prometheus-server better]# cat /etc/passwd |grep "root"
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
命令 | 作用 | 使用场景 |
cut | 将一段信息的某一段切出来,处理的信息是以行为单位。 | echo $PATH | cut -d ':' -f 3-5 //将path的值按照':'进行分割,后取出第3到5个值 |
grep/egrep | 分析一行信息,如果有匹配的,就将该行拿出来。 | cat /etc/passwd | grep root //列出输出中带有root的行 |
sort |
可以依据不同的数据类型进行排序。
|
cat /etc/passwd | sort -t ':' -k 3 -n //根据 passwd中每行,按':'分隔符进行分隔后,按照第3个字段使用纯数字的方式进行排序 |
uniq | 重复的行只显示一个 | last | cut -d ' ' -f1 | sort | uniq -c //列出登录者名字,并进行排序,进行统一处理,并计数。 |
wc | 统计指定文件中的字节数、字数、行数,并将统计结果显示输出 | cat /etc/man.config | wc //输出三个数字,分表代表行,字数,字符数 |
2.xargs
将前一个命令的输出作为命令行参数传给后面的命令
[root@prometheus-server /]# find /test/ -name *.txt -type f |xargs echo
/test/2.txt /test/3.txt /test/4.txt /test/5.txt /test/100.txt
xargs将参数一次传给echo
3.-exec
- 要结合{};来用, {}表示前面查询的结果;结束符\;这是固定的写法
- 参数是一个一个传递的,传递一个参数执行一次
- 文件名有空格等特殊字符也能处理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧