向ubuntu上进行开发或者部署,有可能遇到对某一个目录下各级子目录中有可能存在的某些文件内容进行替换,比如替换某些文件中的某一个字符串。
要实现这个功能,有多种实现方式,比如可以写一个脚本文件遍历指定目录下的各级子目录,并对目录中符合指定条件的文件进行内容替换处理。
ubuntu一类的linux系统的一个强大之处就强大的脚本命令以及通过管道等方式组合使用多种脚本命令实现用户的某些处理需求。
对于本例,可以使用一行代码完成上述要求,如下:
find . -type f -name test | xargs sed -i 's/oldStr/newStr/g'
上述命令中,oldStr是文件中原有需要替换的字符串,newStr表示用来替换原有字符串的新字符串,这两个参数用户根据需要指定。
这里需要注意的是,如果如上述例子那样,指定文件的完整名称,需要加上-type f参数,这表示只对(普通)文件进行处理,对于同名的文件夹等不做处理。
find命令也可以通过通配符以及其他命令参数对指定文件进行过滤,比如查找具有某一后缀名的文件等。