Linux命令之 玩转xargs
分类:关于计算机

咱俩得以用管道将多少个下令的正规化输出重定向到另贰个下令的行业内部输出,不过有个别命令只好以命令行参数的花样接收数据,而一点战术也施展不出承受通过stdin的数量,那一年我们将在动用xargs。
 
xargs应该紧跟管道操作符之后。

1.将多行转变为单行,将单行调换为多行。  

[root@localhost 桌面]# cat show.txt
 
wang
 
Hunan Chenzhou
 
123456  

 

li
 
Guangzhou Zhuhai
 
654321  

 

[root@localhost 桌面]# cat show.txt | xargs
 
wang Hunan Chenzhou 123456 li Guangzhou Zhuhai 654321
 
[root@localhost 桌面]# cat show.txt | xargs -n 4
 
wang Hunan Chenzhou 123456
 
li Guangzhou Zhuhai 654321  

 

2.定界符,使用-d 选项  

[root@localhost 桌面]# cat show.txt | xargs -d "n"
 
wang Hunan Chenzhou 123456  li Guangzhou Zhuhai 654321  

 

3.读取stdin,将格式化参数字传送递给命令(一个或多个)  

[root@localhost 桌面]# vi ceshi.sh
 
#!/bin/bash
 
echo $*'OK'
 
[root@localhost 桌面]# chmod +x ceshi.sh  

[root@localhost 桌面]# cat show.txt | xargs -n 1 ./ceshi.sh
 
wangOK
 
HunanOK
 
ChenzhouOK
 
123456OK
 
liOK
 
GuangzhouOK
 
ZhuhaiOK
 
654321OK  

[root@localhost 桌面]# cat show.txt | xargs ./ceshi.sh
 
wang Hunan Chenzhou 123456 li Guangzhou Zhuhai 654321OK  

 

4.传递复杂的命令参数(可变,不可变参数)-I选项替换字符
 
[root@localhost 桌面]# cat show.txt | xargs -I {} ./ceshi.sh -p {} -1
 
-p wang -1OK
 
-p Hunan Chenzhou -1OK
 
-p 123456 -1OK
 
-p li -1OK
 
-p Guangzhou Zhuhai -1OK
 
-p 654321 -1OK  

 

5.xargs结合其他命令的用法  

[root@localhost 桌面]# file * | grep show | cut -d ":" -f1 | xargs wc -l
 
8 show.txt  

[root@localhost 桌面]$ file * | grep show | cut -d ":" -f1 |xargs -t wc -l
 
wc -l show.txt
 
8 show.txt
 
-t选项,先打字与印刷命令,然后再试行
 
[root@localhost 桌面]# file * | grep show | cut -d ":" -f1 | xargs vi    打开vi编辑器
 
[root@localhost 桌面]# file * | grep show | cut -d ":" -f1 | xargs -t -i mv {} {}.bak
 
mv show.txt show.txt.bak
 
修改名字
 
[root@localhost 桌面]$ find . -name "*.txt" -type f -print0 | xargs -0 tar -zcvf text.tar.gz
 
招来全体txt文件,并压缩它们。
 
实质上xargs能够接众多下令,开采它们你会感到特别风趣。

图片 1

本文由正版必中一肖图发布于关于计算机,转载请注明出处:Linux命令之 玩转xargs

上一篇:Linux内核缺页 下一篇:没有了
猜你喜欢
热门排行
精彩图文