目录内批量查找替换,我用 tree 替代 find。

简介: 最近有需求,需要在编译好的前端文件里,查找替换特定字段。 通常都会想到用 find 找出文件再使用管道输出给 sed。但实际验证下来,包括去 StackOverFlow 上查找,解决方案都不理想。 主要的痛点是:find 对需要忽略的目录路径,处理很麻烦,效果还差异很大。

最近有需求,需要在编译好的前端文件里,查找替换特定字段。

通常都会想到用 find 找出文件再使用管道输出给 sed。但实际验证下来,包括去 StackOverFlow 上查找,解决方案都不理想。

主要的痛点是:find 对需要忽略的目录路径,处理很麻烦,效果还差异很大。例如这里说的 How to exclude a directory in find . command

折腾了大半天,勉强能用,我们有多个前端项目,要做这个适配很痛苦。

晚上在家灵光一闪:tree 这个命令,可以列出目录下所有文件和目录,何不试试?

周六溜回公司,试验了一把,完美。以下是最终的 ansible 代码部分。

- name: Find and replace specified strings
  shell: |
    tree --noreport --prune -iFf \
      -I 'node_modules|jspm_packages' \
      -P '*.css|*.js|*.html|*.htm' \
      build/{{ region_name }}/{{ prj_name }}/{{ prj_output_dir | default('target') }} \
      | grep -Ev '/$' \
      | tail -n +2 \
      | xargs -n1 sed -i -e 's/{{ item.s1 }}/{{ item.s2 }}/g'
  with_items:
     - s1: "work.aaa.com"
       s2: "{{ region_name }}-work.{{ region_domain }}"

用到的命令参数就不一一解释了。执行效率非常高。

目录
相关文章
|
8月前
|
Unix Shell Linux
如何使用find查找命令
如何使用find查找命令
which-find命令,which cd 指令可以查看指令的存放位置,find命令相当于文件的搜索框,find / -name “test“,从目录 / 开始进行搜索, 按照文件名搜索,搜索test
which-find命令,which cd 指令可以查看指令的存放位置,find命令相当于文件的搜索框,find / -name “test“,从目录 / 开始进行搜索, 按照文件名搜索,搜索test
|
11月前
|
Shell
grep 搜索当前文件夹下的所有子文件中的文件是否包含8888字符串的命令
要在当前文件夹及其所有子文件夹中的文件中搜索包含字符串 "8888" 的文件,你可以使用 grep 命令结合 -r 或 -R 选项(表示递归搜索)。这里是具体的命令: bash grep -r "8888" . 其中: -r 或 -R:递归搜索。 "8888":你要搜索的字符串。 .:表示当前目录。 这个命令会列出所有包含字符串 "8888" 的文件的名称以及匹配的行。如果你只想看到文件名,而不看具体的匹配行,可以加上 -l 选项: bash grep -rl "8888" . 这样,命令只会输出包含字符串 "8888" 的文件名。
147 1
|
11月前
|
Shell Linux C语言
【Shell 命令集合 文件管理】Linux 将多个文件的内容按列合并 paste命令使用指南
【Shell 命令集合 文件管理】Linux 将多个文件的内容按列合并 paste命令使用指南
434 0
|
Linux
【Linux命令200例】find用来查找文件和目录,不可错过的15个例子
在Linux系统中,find命令非常强大,它可以用来查找文件和目录,并对查找到的结果进行各种操作。find命令是一个基于文件查找的工具,可以按照文件名、文件类型、文件大小、文件权限等条件进行高度灵活的查找。本文将详细介绍find命令的用法,包括常用参数的解释和示例。
585 0
|
Python
Python递归遍历文件夹批量替换某字符串改名
Python递归遍历文件夹批量替换某字符串改名
151 0
|
Python
python将目录下的所有文件夹以及文件写进excle表格中
python将目录下的所有文件夹以及文件写进excle表格中
|
Shell
利用 shell 脚本配合 find 命令展示目录结构树
利用 shell 脚本配合 find 命令展示目录结构树
226 0
利用 shell 脚本配合 find 命令展示目录结构树
|
开发工具 数据库