博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
xargs
阅读量:6875 次
发布时间:2019-06-26

本文共 1786 字,大约阅读时间需要 5 分钟。

功能说明:向其他命令传递命令行参数的一个过滤器,能够将管道或者标准输入传递的数据转换成xargs命令后跟随的命令的命令行参数。
 
选项说明:
-n 指定每行的最大参数量,可以将标准输入的文本划分为多行,每行n个参数,默认为空五个分割。
-d 自定义分隔符。
-i 以{} 替代前面的结果。
-I 指定一个符号替代前面的结果,而不用-i参数默认的 {} 。
-p 提示让用户确认是否执行后的命令,y执行,n不执行。
-0(数字0) 用null代替空格作为分隔符,配合find命令的 -print0选项的输出作用。
 
范例1.多行输入变单行的例子
[root@restoredb ~]# cat test.log 
1 2 3 4 5 6
7 8 9 
10 11
[root@restoredb ~]# xargs < test.log 
1 2 3 4 5 6 7 8 9 10 11
 
范例2.通过-n指定每行的输出个数的例子
[root@restoredb ~]# cat test.log 
1 2 3 4 5 6
7 8 9 
10 11
[root@restoredb ~]# xargs -n 3 < test.log 
1 2 3
4 5 6
7 8 9
10 11
 
范例3.自定义分隔符(使用-d功能)的例子
[root@restoredb ~]# echo splitXsplitXsplitXsplitX
splitXsplitXsplitXsplitX
[root@restoredb ~]# echo splitXsplitXsplitXsplitX|xargs -d X 
split split split split 
 
[root@restoredb ~]# echo splitXsplitXsplitXsplitX|xargs -d X -n 2 
split split
split split
 
范例4.参数-i 可以让{} 代替前面find命令找到的文件或目录
find . -name "*.log" |xargs -i mv {} /tmp/
 
范例5.参数-I 可以指定一个替换的字符串
find . -name "*.log" |xargs -I [] cp [] /tmp
 
范例6.结合find使用xargs的特殊案例
首先模拟创建

[root@restoredb temp]# ls
[root@restoredb temp]# touch "hello word.txt" 
[root@restoredb temp]# ls
hello word.txt
[root@restoredb temp]# touch hello\ everyone.txt
[root@restoredb temp]# ll
total 0
-rw-r--r-- 1 root root 0 Jul 17 23:04 hello everyone.txt
-rw-r--r-- 1 root root 0 Jul 17 23:04 hello word.txt
使用常规方法,发现并不能删除
[root@restoredb temp]# find . -type f -name "*.txt"|xargs rm 
rm: cannot remove ‘./hello’: No such file or directory
rm: cannot remove ‘word.txt’: No such file or directory
rm: cannot remove ‘./hello’: No such file or directory
rm: cannot remove ‘everyone.txt’: No such file or directory
必须使用-0 选项,以字符null分割输出
[root@restoredb temp]# find . -type f -name "*.txt" -print0|xargs -0 rm -f
[root@restoredb temp]# ls
[root@restoredb temp]# 
 
 
 

转载于:https://www.cnblogs.com/liang545621/p/9414668.html

你可能感兴趣的文章
可能是迄今为止最好的GitHub代码浏览插件--赞
查看>>
ASP.NET Core 微服务初探[1]:服务发现之Consul
查看>>
HDU-1072 Nightmare BFS
查看>>
认清世界,认清自我,超凡脱俗
查看>>
如何在Fedora 22上面配置Apache的Docker容器
查看>>
Swift 控制流
查看>>
css浮动、BFC、定位问题
查看>>
ThoughtWorks雷达上的新奇变化
查看>>
Kubernetes首爆严重安全漏洞,请升级你的Kubernetes
查看>>
Linux之父为过去的言行道歉,宣布离开社区反思
查看>>
家政APP开发,需要注意什么问题?
查看>>
【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】
查看>>
C语言接口与实现实例
查看>>
含有汉字的固定字符由ZHS16GBK数据库导入到AL32UTF8的数据库
查看>>
php-fpm进程数优化
查看>>
iOS中如何对具有复杂依赖的SDK在真机上进行单元测试
查看>>
Mobile Web中URL设计问题
查看>>
core Animation之CAAnimationGroup(动画群组)
查看>>
重构实践:体验interface的威力(一)
查看>>
UILabel混合显示动画效果
查看>>