Linux 命令 | 常用命令 xargs
【摘要】 目录
一、基本概念
二、xargs 常用功能
2.1 给另外一个命令传递参数
2.2 -d 参数
2.3 xargs 不带参数
三、参考文献
一、基本概念
xargs 命令是一个在 Linux 上经常使用到的命令,本篇文章不打算把所有 xargs 的功能列举一遍,而是总结下 xargs 常用的功能,顺便先提一下 xargs 的来源...
目录
一、基本概念
xargs 命令是一个在 Linux 上经常使用到的命令,本篇文章不打算把所有 xargs 的功能列举一遍,而是总结下 xargs 常用的功能,顺便先提一下 xargs 的来源,xargs 是通过包 findutils 提供的,该包还提供 find 命令,如下所示:
[root@bogon ~]# which xargs
/usr/bin/xargs
[root@bogon ~]# rpm -qf /usr/bin/xargs
findutils-4.5.11-6.el7.x86_64
可用同样的操作查看 find 命令,也属于这个包。
本文所有测试使用到的系统环境为:
CentOS Linux release 8.0.1905 (Core)
二、xargs 常用功能
2.1 给另外一个命令传递参数
在 xargs 命令的所有功能中,用的最多的当属:它能够捕获一个命令的输出,然后传递给另外一个命令,这种用法对不支持管道直接传递参数的命令非常有用,比如:ls、wget、cat、tar、rm等命令。
[root@bogon ~]# find /dev -name sd* | xargs ls -l
brw-rw----. 1 root disk 8, 0 2月 14 17:28 /dev/sda
brw-rw----. 1 root disk 8, 1 2月 14 17:28 /dev/sda1
brw-rw----. 1 root disk 8, 2 2月 14 17:28 /dev/sda2
2.2 -d 参数
参数 : -d 分隔符;默认的 xargs 分隔符是回车,argument 的分隔符是空格,这里修改的是 xargs 的分隔符。例如:使用 '.' 分隔 rpm 包的包名和架构,如下所示:
[root@bogon ~]# dnf list available | awk '{print $1}' | xargs -d .
CUnit i686
CUnit x86_64
CUnit-devel i686
CUnit-devel x86_64
GConf2 i686
GConf2-devel i686
GConf2-devel x86_64
HdrHistogram noarch
……
2.3 xargs 不带参数
xargs 的默认命令是 echo ,即:
$ xargs // 等价于 xargs echo
这意味着通过管道传递给 xargs 的输入,经过 xargs 的处理换行和空白将被空格取代,例如:
[root@localhost ~]# cat test.txt
centos8 system
I like learning Linux!
This article is the study of xargs.
[root@localhost ~]# cat test.txt | xargs
centos8 system I like learning Linux! This article is the study of xargs.
[root@localhost ~]#
经过xargs的处理后,多行转换为一行。
三、参考文献
[1] https://www.runoob.com/linux/linux-comm-xargs.html
[2] http://www.ruanyifeng.com/blog/2019/08/xargs-tutorial.html
文章来源: blog.csdn.net,作者:Linux猿,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/nyist_zxp/article/details/108015479
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)