xargs的使用实战

举报
互联网老辛 发表于 2021/06/08 23:46:04 2021/06/08
【摘要】 文章目录 一. xargs命令介绍xargs 作用:二. 常用参数二. 单行与多行的输出1. 创建测试文件2. 将多行变成单行3. 将单行数据 变成3个空格一列 三. 指定定界符四. 特殊用法总结 一. xargs命令介绍 xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。xargs 擅长将标准输入数据转换成命令行的参数。 ...

一. xargs命令介绍

xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。xargs 擅长将标准输入数据转换成命令行的参数。

xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。
xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。

很多时候我们无法用管道完成的命令,可以使用xargs命令来完成。
[root@rhce ~]# echo “hello” |echo ## 无法输出hello
但是使用xargs就不同了:

[root@rhce ~]# echo "hello" |xargs echo
hello
[root@rhce ~]# 

  
 
  • 1
  • 2
  • 3

xargs 作用:

xargs的作用在于大多数命令(比如 rm,mkdir,ls)与管道一起使用时,都需要xargs将标准输入转为命令行的参数

echo “one two three” | xargs mkdir 等同于mkdir one two three

二. 常用参数

参数 说明
a 从文件中读入作为stdin
n 以空行为分割,多行输出
d 自定义定界符
p 打印出要执行的命令,询问用户是否执行
t 打印出最终要执行的命令,然后直接执行,不需要用户确认。

二. 单行与多行的输出

1. 创建测试文件
[root@rhce ~]# cat a.txt 
1 2 3 4 5 6
7 8 9 10
11 12

  
 
  • 1
  • 2
  • 3
  • 4
2. 将多行变成单行
[root@rhce ~]# cat a.txt |xargs
1 2 3 4 5 6 7 8 9 10 11 12

  
 
  • 1
  • 2
3. 将单行数据 变成3个空格一列
[root@rhce ~]# cat a.txt |xargs -n 3
1 2 3
4 5 6
7 8 9
10 11 12


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

三. 指定定界符

  1. 创建测试文件
[root@rhce ~]# cat b.txt
zmgaoshxzmgaoshxzmgaosh

  
 
  • 1
  • 2
  1. 已x为分隔符分割
[root@rhce ~]# cat b.txt | xargs -d x
zmgaosh zmgaosh zmgaosh

  
 
  • 1
  • 2
  1. 指定以x为分隔符,并以一个空格为一行,划分成多行
[root@rhce ~]# cat b.txt |xargs -d x -n 1
zmgaosh
zmgaosh
zmgaosh

  
 
  • 1
  • 2
  • 3
  • 4

四. 特殊用法

xargs默认将空格作为分隔符,所以不太适合处理文件名,因为文件名可能包含空格。

find命令有一个特别的参数-print0,指定输出的文件列表以null分隔。然后,xargs命令的-0参数表示用null当作分隔符。

创建测试文件
[root@rhce test]# pwd
/root/test
[root@rhce test]# touch aaa bbb
[root@rhce test]# ls
aaa bbb

使用find查找并删除

[root@rhce test]# find ./ -type f -print0 
./aaa./bbb[root@rhce test]# find ./ -type f -print0 | xargs -0 rm
[root@rhce test]# ls

  
 
  • 1
  • 2
  • 3

问题:
查找当前路径下文件内容包含abc 的文件

**[root@rhce test]# find . -name "*.txt" | xargs grep "abc"
./a.txt:abc
./b.txt:abc
[root@rhce test]#** 

  
 
  • 1
  • 2
  • 3
  • 4

总结

xargs是个很有用的命令,需要大家多研究它的使用方法和用法,方便更快的处理文本内容

文章来源: zmedu.blog.csdn.net,作者:互联网老辛,版权归原作者所有,如需转载,请联系作者。

原文链接:zmedu.blog.csdn.net/article/details/107885076

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。