linux命令--xargs的使用

xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。

xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。

xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。

xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。

xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。

之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了 xargs 命令

例:

[[email protected] ~]# find /sbin -perm +700|ls   这是错误的写法,只处理管道后面的命令
a.log anaconda-ks.cfg install.log install.log.syslog null xiaojin.txt

[[email protected] ~]# 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 zEOF
使用实例

1、多行输入单行输出

例:

[[email protected] ~]# 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
[[email protected] ~]# 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  多行输出

例:

[[email protected] ~]# 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 定义一个定界符

例:

[[email protected] ~]# echo "namaeXnameXname"|xargs -dX
namae name name

[[email protected] ~]# echo "namaeXnameXname"|xargs -da
n m eXn meXn me

4、-n 结合 -d使用

例:

[[email protected] ~]# echo "namaeXnameXname"|xargs -dX -n1
namae
name
name

5、 -I,使用 -I 指定一个替换字符串 {},这个字符串在 xargs 扩展时会被替换掉,当 -I 与 xargs 结合使用,每一个参数命令都会被执行一次:

例:

[[email protected] ~]# 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



原文地址:https://www.cnblogs.com/XiaoJin-boy/p/10243562.html

时间: 2024-09-29 01:38:46

linux命令--xargs的使用的相关文章

每日linux命令学习-xargs命令

xargs命令 xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理.通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从文件的输出中读取数据.xargs的默认命令是echo,这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代. xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令.      简单来说,通常与“|”搭配

linux命令之玩转xargs

linux命令之玩转xargs 我们可以用管道将一个命令的标准输出重定向到另一个命令的标准输出,但是有些命令只能以命令行参数的形式接收数据,而无法接受通过stdin的数据,这个时候我们就要用到xargs. xargs应该紧跟管道操作符之后. 1.将多行转换为单行,将单行转换为多行. [[email protected] 桌面]# cat show.txt wang Hunan Chenzhou 123456 li Guangzhou Zhuhai 654321 [[email protected

【转】【Linux】linux下xargs命令

xargs命令当前位置:首页 ? 软件·打印·开发·工具 ? xargs xargs命令常用工具命令 xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具.它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数.xargs也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行.xargs的默认命令是echo,空格是默认定界符.这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换

【转载】每天一个Linux命令

每天一个linux命令(1)  : ls 命令 每天一个linux命令(2)  : cd 命令 每天一个linux命令(3)  : pwd 命令 每天一个linux命令(4)  : mkdir 命令 每天一个linux命令(5)  : rm 命令 每天一个linux命令(6)  : rmdir 命令 每天一个linux命令(7)  : mv 命令 每天一个linux命令(8)  : cp 命令 每天一个linux命令(9)  : touch 命令 每天一个linux命令(10): cat 命令

[Android ] linux命令英文缩写的含义(方便记忆)

du -sh */ reference to : http://blog.chinaunix.net/uid-27164517-id-3299073.html linux常用命令的英文单词缩写 命令缩写:ls:list(列出目录内容)cd:Change Directory(改变目录)su:switch user 切换用户rpm:redhat package manager 红帽子打包管理器pwd:print work directory 打印当前目录 显示出当前工作目录的绝对路径ps: proc

每天一个linux命令目录(转)

转载: http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令,坚持每天一个命令,所以这个系列为每天一个linux命令.学习的主要参考资料为: 1.<鸟哥的linux私房菜> 2.http://codingstandards.iteye.com/blog/786653 3.linux命令五分钟系列 4.其他互联网资料,google,baidu等搜索引擎 一. 文件目录操作命令: 1.每天一个

Java开发必会的Linux命令

作为一个Java开发人员,有些常用的Linux命令必须掌握.即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令.因为很多服务器上都是Linux系统.所以,要和服务器机器交互,就要通过shell命令. 本文并不会对所有命令进行详细讲解,只给出常见用法和解释.具体用法可以使用--help查看帮助或者直接通过google搜索学习. 1.查找文件 find / -name filename.txt 根据名称查找/目录下的filename.txt文件. find .

Linux命令随笔

1 Linux命令总结 2 3 man ==命令帮助; 4 help ==命令的帮助(bash的内置命令); 5 ls ==list,查看目录列表; 6 -ld:查看目录权限; 7 -l:(long)长格式显示属性; 8 -F:给不同的文件类型结尾加标识 9 -p:给目录加斜线 10 -r:(reverse)反转排序 11 -t:按时间排序 12 --color=auto 给输出的不同类型文件加不同颜色 13 -a:显示隐藏文件 14 ls -l --time-style=long-iso,显示

十年linux命令总结

十年linux命令总结 本文链接: http://codingstandards.iteye.com/blog/786653 关于命令类型划分 本表中列出了我穷尽了我所有的记忆整理出来的Linux命令,其中关于外部命令.关键字或内建命令的划分,不一定正确.有很多命令,既是内建命令也 可能是外部命令,为啥?Bash为了更高效率的执行命令和脚本,把很多外部命令以内建命令的方式实现了.我们使用type这个命令就可以知道一个命令的类 型了,如下所示: [[email protected] ~]# typ