Liunx运维批处理命令xargs

发布时间:2024年01月22日

? ? ? ? xargs?命令是一个非常有用的命令行工具,可以将一些参数集合传递给其他命令作为参数,并利用指定的命令进行处理。它可以帮助我们批量处理文件,执行一些需要多个参数的命令,并且支持并发操作。那么这里不得不提到另一个命令管道符,管道实现的是将前面的输出stdout作为后面的输入stdin,但是有些命令不接受管道的传递方式。因此xargs的作用就是弥补这一缺陷处理管道传输过来的stdin,?将处理后的数据传递到正确的位置。

一、xargs语法及参数

?1、?命令格式

xargs [OPTION]  [COMMAND]

2、参数

-d   指定 xargs 命令的分隔符
-p   打印将要执行的命令,需要用户确认
-t   打印最终执行的命令,不需要二次确认
-0   表示以 null 作为分隔符
-n   每次将一行中的多少个参数作为命令行参数
-r   当输入不包含非空格时,不执行命令,默认情况下,不管输入是否包含非空格时,都会执行命令
-I   命令行参数的每一项参数的变量
-P   最大并发数
-s   命令行参数最大长度

二、应用示例

1、xargs? -p? ?-r

? ? ?批量关闭docker容器

 docker  ps -qf status=running | xargs  -p  docker stop

? ? 如果当前没有正在运行的容器,那么执行docker stop会报错,那么可以使用-r参数退出

 docker  ps -qf status=running | xargs  -p -r  docker stop

2、xargs? -t? -r??

? ? ?批量启动停止的docker容器

 docker  ps -qf status=exited  | xargs  -t -r  docker restart

3、?xargs与find结合使用

? ? ?批量删文件

find ?./ ?-name ?"a*" ? | xargs ?-t ? ?rm -rf

? ?查找大文件

 find ./ -size +256M  | xargs  ls -lh

4、xargs? -n?

? ?将多行装单行

cat  >>  test.txt  << EOF
> A
> B
> C
> D
> E
> F
> G
> I
> L
> H
> J
> M
> N
> EOF

? 将test.txt文件一行输出

cat test.txt   | xargs

?将test.txt? 按照33列输出

 cat test.txt   | xargs  -n3

文章来源:https://blog.csdn.net/fengchengwu2012/article/details/135742778
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。