最近在处理文件时,发现要对很多文件的某几处进行相同的修改,这让我想到用sed和awk去批量处理,但是单纯用sed和awk需要指定文件的位置,在处理大量文件的时候非常不方便。好在find帮我解决了这个问题。利用find 和xargs可以很轻松的实现批量文件的处理。接下来我和大家介绍下find和xargs的使用。
首先介绍find的使用。
find {path} 查找path路径下所有的文件和目录,path 空缺则指当前目录。
find {path} -name '*.yml' 查找path路径下yml文件。
find -name '*.sv' -o -name '*.yml' 查找sv或者yml文件
find -type { d:目录文件 b:块设备文件 c:字符设备文件f:普通文件}
更多find 运用读者可以在网上搜索。
xargs的命令作用是生成一些参数,跟find组合的时候,获取find到的参数; 当 xargs 后面没有接任何的命令时,默认是以echo 来进行输出。
find命令去加载你在查找的东西,xargs会对你查找到的每一个东西,做相同的操作。
下面我们看看用find和xargs组合实现批量处理文件。
例子1. 将vip_new目录下所有文件中的vip 改成custom_vip
更改之前
用find -type f|xargs sed -i 's/vip/custom_vip/g'
例子2. 删除所有的sv文件
用find -name ‘*.sv’看目录下有哪些sv文件
用find -name ‘*.sv’|xargs rm 删除目录下的sv文件
作者:IC bug 猎人
原文链接:处芯积律
推荐阅读
更多IC设计技术干货请关注IC设计技术专栏。