前言

xargs命令是把接收到的数据重新格式化,再将其作为参数提供给其他命令,下面介绍xargs命令的各种使用技巧,一起来看看吧。
一、将多行输入转换成单行输入:
[root@host1 test]# echo -e "1 2 3 4 5 \n6 7 8 \n9 10 11 12" >example.txt [root@host1 test]# cat example.txt 1 2 3 4 5 6 7 8 9 10 11 12 [root@host1 test]# cat example.txt |xargs 1 2 3 4 5 6 7 8 9 10 11 12
将单行输入转换成多行输出:
[root@host1 test]# cat example.txt | xargs -n 3 1 2 3 4 5 6 7 8 9 10 11 12
自定义定界符进行转换(默认的定界符是空格):
[root@host1 test]# echo "Hello:Hello:Hello:Hello" | xargs -d : -n 2 Hello Hello Hello Hello
二、在脚本中运用:
[root@host1 test]# cat echo.sh #!/bin/bash echo $* '^-^'
当参数传递给echo.sh后,它会将这些参数打印出来,并且以"^-^"作为结尾:
[root@host1 test]# echo -e "Tom\nHarry\nJerry\nLucy" > args.txt [root@host1 test]# cat args.txt | xargs bash echo.sh Tom Harry Jerry Lucy ^-^ [root@host1 test]# cat args.txt | xargs -n 2 bash echo.sh Tom Harry ^-^ Jerry Lucy ^-^
在上面的例子中,我们把参数源都放入args.txt文件,但是除了这些参数,我们还需要一些固定不变的参数,比如:
[root@host1 test]# bash echo.sh Welcome Tom Welcome Tom ^-^
在上述命令执行过程中,Tom是变量,其余部分为常量,我们可以从"args.txt"中提取参数,并按照下面的方式提供给命令:
[root@host1 test]# bash echo.sh Welcome Tom [root@host1 test]# bash echo.sh Welcome Herry [root@host1 test]# bash echo.sh Welcome Jerry [root@host1 test]# bash echo.sh Welcome Lucy
这时我们需要使用xargs中-I命令:
[root@host1 test]# cat args.txt | xargs -I {} bash echo.sh Welcome {}
Welcome Tom ^-^
Welcome Harry ^-^
Welcome Jerry ^-^
Welcome Lucy ^-^
-I {} 指定替换字符串,对于每一个命令参数,字符串{}都会被从stdin读取到的参数替换掉,
使用-I的时候,命令以循环的方式执行,如果有4个参数,那么命令就会连同{}一起被执行4次,在每一次执行中{}都会被替换为相应的参数。
三、结合find使用
xargs和find是一对非常好的组合,但是,我们通常是以一种错误的方式运用它们的,比如:
[root@host1 test]# find . -type f -name "*.txt" -print | xargs rm -f
这样做是有危险的,有时会删除不必删除的文件,如果文件名里包含有空格符(' '),则xargs很可能认为它们是定界符(例如,file text.txt会被xargs误认为file和text.txt)。
如果我们想把find的输出作为xargs的输入,就必须将-print0与find结合使用以字符null('\0')来分隔输出,用find找出所有.txt的文件,然后用xargs将这些文件删除:
[root@host1 test]# find . -type f -name "*.txt" -print0 | xargs -0 rm -f
这样就可以删除所有的.txt文件了,xargs -0 将\0作为输入定界符。
四、运用while语句和子shell
[root@host1 test]# cat files.txt | (while read arg ;do cat $arg;done)
这条命令等同于:
[root@host1 test]# cat files.txt | xargs -I {} cat {}
在while循环中,可以将cat $arg替换成任意数量的命令,这样我们就可以对同一个参数执行多条命令,也可以不借助管道,将输出传递给其他命令,这个技巧适应于多种问题场景。子shell操作符内部的多个命令可作为一个整体来运行。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# linux
# xargs命令
# xargs命令详解
# -i
# Linux下强制杀死进程的方法详解
# Linux基础之xargs命令的入门实例
# Linux xargs kill进程 交叉查询方式
# 定界
# 转换成
# 就会
# 是有
# 多个
# 我们可以
# 这条
# 这样做
# 很可能
# 就可
# 自定义
# 作为一个
# 还需要
# 非常好
# 在上面
# 这篇文章
# 想把
# 谢谢大家
# 看看吧
# 会将
相关文章:
盐城做公司网站,江苏电子版退休证办理流程?
高性能网站服务器配置指南:安全稳定与高效建站核心方案
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
建站之星后台密码遗忘?如何快速找回?
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
宝塔面板如何快速创建新站点?
如何选择靠谱的建站公司加盟品牌?
如何正确下载安装西数主机建站助手?
股票网站制作软件,网上股票怎么开户?
非常酷的网站设计制作软件,酷培ai教育官方网站?
平台云上自助建站如何快速打造专业网站?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
php json中文编码为null的解决办法
建站主机空间推荐 高性价比配置与快速部署方案解析
广州商城建站系统开发成本与周期如何控制?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
深圳 网站制作,深圳招聘网站哪个比较好一点啊?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
建站主机选择指南:服务器配置与SEO优化实战技巧
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?
*服务器网站为何频现安全漏洞?
建站之星如何取消后台验证码生成?
网站设计制作企业有哪些,抖音官网主页怎么设置?
高端建站三要素:定制模板、企业官网与响应式设计优化
如何在建站宝盒中设置产品搜索功能?
深圳网站制作案例,网页的相关名词有哪些?
深圳网站制作的公司有哪些,dido官方网站?
如何快速搭建自助建站会员专属系统?
香港服务器选型指南:免备案配置与高效建站方案解析
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
如何高效完成独享虚拟主机建站?
如何用狗爹虚拟主机快速搭建网站?
淘宝制作网站有哪些,淘宝网官网主页?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
用v-html解决Vue.js渲染中html标签不被解析的问题
如何获取免费开源的自助建站系统源码?
小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建
西安专业网站制作公司有哪些,陕西省建行官方网站?
学校为何禁止电信移动建设网站?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
如何通过PHP快速构建高效问答网站功能?
如何在阿里云购买域名并搭建网站?
动图在线制作网站有哪些,滑动动图图集怎么做?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
如何用5美元大硬盘VPS安全高效搭建个人网站?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
*请认真填写需求信息,我们会在24小时内与您取得联系。