linux命令--xargs的使用
xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。
xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。
xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。
xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。
xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。
之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了 xargs 命令
例:
[root@xiaojin ~]# find /sbin -perm +700|ls   这是错误的写法,只处理管道后面的命令
a.log  anaconda-ks.cfg  install.log  install.log.syslog  null  xiaojin.txt
[root@xiaojin ~]# find /sbin -perm +700|xargs ls      正确的写法,把管道前面的结果标准输出给管道后面的命令
/sbin/accton		   /sbin/insmod.static		  /sbin/pdata_tools
/sbin/addpart		   /sbin/install-info		  /sbin/pidof
/sbin/agetty		   /sbin/installkernel		  /sbin/pivot_root
命令格式:
somecommand |xargs -item command
测试文件:
cat >>test.txt<<EOF
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
EOF
使用实例 1、多行输入单行输出 例:
[root@xiaojin ~]# cat 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
[root@xiaojin ~]# cat test.txt |xargs 
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
2、-n 多行输出
例:
[root@xiaojin ~]# cat test.txt |xargs -n 5
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
3、-d 定义一个定界符
例:
[root@xiaojin ~]# echo "namaeXnameXname"|xargs -dX
namae name name
[root@xiaojin ~]# echo "namaeXnameXname"|xargs -da
n m eXn meXn me
4、-n 结合 -d使用
例:
[root@xiaojin ~]# echo "namaeXnameXname"|xargs -dX -n1
namae
name
name
5、 -I,使用 -I 指定一个替换字符串 {},这个字符串在 xargs 扩展时会被替换掉,当 -I 与 xargs 结合使用,每一个参数命令都会被执行一次:
例:
[root@xiaojin ~]# ls .*jpg|xargs -n1 -i cp {} /data01/images
6、xargs 结合 find 使用
用 rm 删除太多的文件时候,可能得到一个错误信息:/bin/rm Argument list too long. 用 xargs 去避免这个问题:
find / -type f -name "*.log" |xargs rm -f
linux命令--xargs的使用的更多相关文章
- linux 命令 — xargs
		xargs xargs能接收stdin并将其转化为特定命令的命令行参数,构建单行命令的重要工具 command | xargs 指定分隔符 echo "splitXsplitXsplitXs ... 
- Linux命令-xargs
		比如一个例子 echo "README.md" |cat echo "README.md" |xargs cat 第一个例子只是输出了README.md的文件名 ... 
- Linux命令xargs的使用
		ls | xargs catls | xargs -I {} cat {} 大写I,指定参数的替换符号为{} 自定义 
- 开发必备linux命令大全-稳赚不亏
		我们的服务一般都是在linux系统运行,因此了解一些关于linux命令是必须.接下来将一一详细介绍一些常用的linux的命令 文件操作 远程登录与操作 磁盘挂载 进程管理 启动和结束 系统性能参数查看 ... 
- 每天一个 Linux 命令(21):find命令之xargs
		在使用 find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行.但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出 ... 
- linux命令瞎记录find xargs
		1.创建多个文件 touch test{0..100}.txt 2.重定向 “>>” 追加重定向,追加内容,到文件的尾部 “>” 重定向,清除原文件里面所有内容,然后把内容追加到文件 ... 
- Linux命令:xargs命令详解,xargs与管道的区别
		阅读目录 为什么要用xargs,问题的来源 xargs是什么,与管道有什么不同 xargs的一些有用的选项 回到顶部 为什么要用xargs,问题的来源 在工作中经常会接触到xargs命令,特别是在别人 ... 
- 每日linux命令学习-xargs命令
		xargs命令 xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理.通常情况下,xargs从管道或者stdin中读取数据 ... 
- Linux下xargs命令详解及xargs与管道的区别
		在工作中经常会接触到xargs命令,特别是在别人写的脚本里面也经常会遇到,但是却很容易与管道搞混淆,本篇会详细讲解到底什么是xargs命令,为什么要用xargs命令以及与管道的区别.为什么要用xarg ... 
随机推荐
- ios-时间换算
			经常会遇到时间转换的,在此收藏一个时间换算的方法〜 #pragma mark 时间换算 + (NSString *)setcreateTime:(NSString *)str { //yyyy-MM- ... 
- 《Attention Augmented Convolutional Networks》注意力的神经网络
			paper: <Attention Augmented Convolutional Networks> https://arxiv.org/pdf/1904.09925.pdf 这篇文章是 ... 
- 使用dotenv 管理nodejs 应用的环境变量&&docker-compose 运行
			说明dotenv 是一个很方便的符合12 factor 的环境变量管理工具,使用很方便,实际上里面的代码也不是很多 测试使用docker 进行环境部署,为了方便分发使用pkg 进行打包,使用alp ... 
- CentOS 7编译安装php7.0.7以及可能遇到的问题的解决方案
			https://blog.csdn.net/chenxiabinffff/article/details/51612149 
- java8_api_misc
			属性文件处理 概念 加载并读取文件内容 修改文件内容 获取系统属性 该文件是一个文本文件,以properties作为其后缀,内容格式为 key1=value ... 
- asp.net core webapi处理Post请求中的request payload
			request payload的Content-Type实际上是text/plain的,如果请求的 Content-Type 为 application/json,这将导致415 Unsupporte ... 
- Java BitSet解决海量数据去重
			先提一个问题,怎么在40亿个整数中找到那个唯一重复的数字? 第一想法就是Set的不可重复性,依次把每个数字放入HashSet中,当放不去进去的时候说明这就是重复的数字,输出这个数字. if(hs.co ... 
- tab页的使用方法
			css代码: #main{ margin:0px; width:100%; height:540px; background:url(m.jpg) no-repeat; background-size ... 
- Django学习笔记之URL与视图cookie和session
			cookie和session cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是为了 ... 
- 解决解决httpd: Could not reliably determine the server's fully qualified domain name
			vi /etc/httpd/conf/httpd.conf 加入一句 ServerName localhost:80 参考:https://www.cnblogs.com/52linux/ar ... 
