Amiya · 2021年11月30日

利用find和xargs批量处理文件

最近在处理文件时,发现要对很多文件的某几处进行相同的修改,这让我想到用sed和awk去批量处理,但是单纯用sed和awk需要指定文件的位置,在处理大量文件的时候非常不方便。好在find帮我解决了这个问题。利用find 和xargs可以很轻松的实现批量文件的处理。接下来我和大家介绍下find和xargs的使用。

首先介绍find的使用。

find {path} 查找path路径下所有的文件和目录,path 空缺则指当前目录。

image.png

find  {path}  -name '*.yml'  查找path路径下yml文件。
image.png

find  -name '*.sv' -o -name '*.yml' 查找sv或者yml文件

image.png

find -type { d:目录文件 b:块设备文件 c:字符设备文件f:普通文件}

image.png
更多find 运用读者可以在网上搜索。

xargs的命令作用是生成一些参数,跟find组合的时候,获取find到的参数; 当 xargs 后面没有接任何的命令时,默认是以echo 来进行输出。

find命令去加载你在查找的东西,xargs会对你查找到的每一个东西,做相同的操作。

下面我们看看用find和xargs组合实现批量处理文件。

例子1. 将vip_new目录下所有文件中的vip 改成custom_vip

更改之前

image.png

用find -type f|xargs sed -i 's/vip/custom_vip/g'

image.png
例子2. 删除所有的sv文件

用find -name ‘*.sv’看目录下有哪些sv文件

image.png

用find -name ‘*.sv’|xargs rm 删除目录下的sv文件

image.png

作者:IC bug 猎人
原文链接:处芯积律
推荐阅读
更多IC设计技术干货请关注IC设计技术专栏。
推荐阅读
关注数
20187
内容数
1307
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息