xargs 命令使用

作用:

(1)将前一个命令的标准输出传递给下一个命令,作为它的参数,xargs的默认命令是echo,空格是默认定界符

(2)将多行输入转换为单行

使用模式:

front command | xargs -option later command

front command:前一个命令

-option:xargs的选项

later command:后一个命令

常用参数:

复制代码
-n:指定一次处理参数的个数

-d:自定义参数界定符

-p:询问是否允许later command 参数

-t:表示先打印命令,然后再执行

-i:逐项处理
复制代码

其他参考:man xargs

example:

测试文本:test.txt

a b c d e f g 
h i j k l m n 
o p q
r s t
u v w x y z

(1)多行输入单行输出

cat test.txt | xargs

结果:

a b c d e f g h i j k l m n o p q r t s u v w x y z

(2)指定一次处理的参数个数:指定为5,多行输出

cat  test.txt |xargs -n 5

结果:

a b c d e 
f g h i j 
k l m n o
p q r t s
u v w x y 
z

(3)自定义参数界定符:指定界定符为‘m’

cat test.txt | xargs -d m

结果:

a b c d e f g 
h i j k l   n 
o p q
r s t
u v w x y z

(4)询问是否运行later command 参数

cat test.txt | xargs -n 5 -p

结果:

(5)删除指定名称的进程:进程名为Deadpool

ps -ef | grep 'Deadpool' | grep -v 'grep'|  awk '{print $2}' | xargs kill -9

 xargs与管道|的区别:

I 用来将前一个命令的标准输出传递到下一个命令的标准输入,xargs将前一个命令的标准输出传递给下一个命令,作为它的参数。

# 使用管道将ls的结果显示出来,ls的标准输出的结果作为cat的标准输入

ls | cat

# 使用xargs将ls的结果作为cat的参数,ls的结果为文件名,所以cat文件名即查看文件内容

ls | xargs cat

xargs与exec的区别:

exec参数是一个一个传递的,传递一个参数执行一次命令;xargs一次将参数传给命令,可以使用-n控制参数个数。

#xargs 将参数一次传给echo,即执行:echo begin ./xargs.txt ./args.txt
find . -name '*.txt' -type -f | xargs echo begin
#exec 一次传递一个参数,即执行:echo begin ./xargs.txt ; echo begin ./args.txt
find . -name '*.txt' - type -f -exec echo begin {} \;

 

posted @   小海哥哥de  阅读(348)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示