参考书籍:《Linux Shell核心编程指南》——丁明一
参考文章:xargs命令详解
一、概述
xargs可以读取标准输入和管道中的数据,用于弥补有些命令(如echo、kill、rm)不能从管道中读取数据的不足。
使用echo,输出结果为空,因为它不能从管道中读取数据
不指定程序时xargs默认会将数据传递给echo,上面的命令等价于
cut -d: -f1 /etc/passwd | xargs echo
二、选项
-0(数字零)
xargs默认以空格、Tab制表符、回车符
为分隔符和结束符,当有的文件本身包含空格时,就会出问题
xargs会把’hello world.txt’识别为两个文件
针对该问题,find提供了一个print0
选项,设置find在输出文件名后自动添加一个NULL
来替代换行符,而xargs也可以通过-0
选项,指定使用NULL而不是空格、Tab制表符、回车符
为分隔符和结束符。
find ./ -name '*.txt' -print0 | xargs -0 rm
-n
指定一次读取几个参数
[root@localhost test]# seq 5 | xargs #默认调用全部参数
1 2 3 4 5
[root@localhost test]# seq 5 | xargs -n 2 #设置一次调用2个参数
1 2
3 4
5
-I
指定一个替换字符串
[root@localhost test]# touch {a,b,c}.txt
[root@localhost test]# ls *.txt | xargs -I[] cp [] /tmp/ #设置[]为替换字符串,[]的值依次为a.txt、b.txt、c.txt
-i
与-I类似,如果不指定替换符,默认为{}
ls *.txt | xargs -i cp {
} /tmp/
ls *.tar |xargs -i docker load -i {
} #逐个导入镜像
-r
no-run-if-empty 当xargs的输入为空的时候则停止xargs,不用再去执行了。
今天的文章xargs命令详解kill_awk命令详解[通俗易懂]分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/72338.html