xargs的使用实战
2021-04-17 23:37
183 查看
文章目录
[/ul]一. xargs命令介绍
xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。xargs 擅长将标准输入数据转换成命令行的参数。
xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。
xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。
很多时候我们无法用管道完成的命令,可以使用xargs命令来完成。
[root@rhce ~]# echo “hello” |echo ## 无法输出hello
但是使用xargs就不同了:
[root@rhce ~]# echo "hello" |xargs echohello[root@rhce ~]#
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
2. 将多行变成单行
[root@rhce ~]# cat a.txt |xargs1 2 3 4 5 6 7 8 9 10 11 12
3. 将单行数据 变成3个空格一列
[root@rhce ~]# cat a.txt |xargs -n 31 2 3 4 5 6 7 8 9 10 11 12
三. 指定定界符
- 创建测试文件
[root@rhce ~]# cat b.txtzmgaoshxzmgaoshxzmgaosh
- 已x为分隔符分割
[root@rhce ~]# cat b.txt | xargs -d xzmgaosh zmgaosh zmgaosh
- 指定以x为分隔符,并以一个空格为一行,划分成多行
[root@rhce ~]# cat b.txt |xargs -d x -n 1zmgaosh zmgaosh zmgaosh
四. 特殊用法
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
问题:
查找当前路径下文件内容包含abc 的文件
**[root@rhce test]# find . -name "*.txt" | xargs grep "abc"./a.txt:abc ./b.txt:abc[root@rhce test]#**
总结
xargs是个很有用的命令,需要大家多研究它的使用方法和用法,方便更快的处理文本内容
相关文章推荐
- 【Spring实战】—— 3 使用facotry-method创建单例Bean总结
- 机器学习实战笔记(三):使用k-近邻算法的手写识别系统(Python3 实现)
- find 命令使用图解(2) xargs 与exec 不同之处
- iOS性能优化:Instruments使用实战
- 使用Dede破解Delphi软件实战
- 实战c++中的vector系列--使用vector构造二维数组
- HttpClient使用详解与实战一:普通的GET和POST请求
- 【Axure9.0原型实战(一)】Axure9.0的元件库的使用、导入、制作、路径等操作方法与技巧(附Axure元件库大全)
- find和xargs的使用
- java内存溢出分析工具:jmap使用实战
- VBA实战技巧精粹003:在宏代码中使用工作表的四种方法
- 《GPU高性能编程-CUDA实战》中例子头文件使用
- 架构实战项目心得(七):使用SpringBoot+Dubbo+Mybatisplus+Oracle搭建后台项目框架(二)
- 【学习笔记】Java网络爬虫实战——分别使用Jsoup和JsoupXpath对w3school网站进行爬取解析
- RxJava实战:变换操作符map的使用姿势及技巧
- Java Socket实战之五 使用加密协议传输对象
- JavaScript使用DeviceOne开发实战(六)点墨真实案例
- 《精通Spring4.X企业应用开发实战》读后感第六章(使用外部属性文件)
- iOS项目开发实战——UILabel与取色器的使用
- 6. Python脚本学习实战笔记六 使用CGI远程编辑