xargs命令详解kill_awk命令详解[通俗易懂]

xargs命令详解kill_awk命令详解[通俗易懂]概述xargs可以读取标准输入和管道中的数据,用于弥补有些命令(如echo、kill、rm)不能从管道中读取数据的不足


参考书籍:《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

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注