目录内批量查找替换,我用 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 }}"

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

目录
相关文章
|
机器学习/深度学习 存储 人工智能
AI浪潮下,大模型如何在音视频领域运用与实践?
LiveVideoStackCon2023深圳站,阿里云视频云演讲分享
755 1
|
存储 Linux Shell
Linux绝对路径和相对路径
在 Linux 中,简单的理解一个文件的路径,指的就是该文件存放的位置。 只要我们告诉 Linux 系统某个文件存放的准确位置,那么它就可以找到这个文件。指明一个文件存放的位置,有 2 种方法,分别是使用绝对路径和相对路径。 我们知道,Linux 系统中所有的文件(目录)都被组织成以根目录“/”开始的倒置的树状结构 绝对路径一定是由根目录 / 开始写起。例如,使用绝对路径的表示方式指明 bin 文件所在的位置,该路径应写为 /usr/bin,测试代码如下: [root@localhost ~]# bin bash: bin: command not found <-- 没有找到 [
483 0
|
7月前
|
Oracle 关系型数据库 MySQL
Oracle Linux 8.10 编译安装sysbench
Oracle Linux 8.10 编译安装sysbench
217 34
|
SQL Linux
Cannot connect to discovery server for announce: Announcement failed for http://hadoop102:8881
linux下启动Presto报错:Cannot connect to discovery server for announce: Announcement failed for http://hadoop102:8881
Cannot connect to discovery server for announce: Announcement failed for http://hadoop102:8881
|
存储 Python
Python Logging 限制文件大小
Python Logging 限制文件大小
260 3
|
消息中间件 存储 NoSQL
国产化中间件正在侵蚀开源中间件
国产化中间件正在侵蚀开源中间件
2232 7
|
PHP
BUU [网鼎杯 2020 青龙组]AreUSerialz
BUU [网鼎杯 2020 青龙组]AreUSerialz
363 0
|
Java Linux
java命令 : java -jar 和 java -cp
java命令 : java -jar 和 java -cp
|
算法 架构师 安全
需求分析和常见的需求问题解决
需求分析和常见的需求问题解决
111717 17
|
存储 IDE Java
Eclipse最新最简最详细安装教程(一)
Eclipse最新最简最详细安装教程
534 0
Eclipse最新最简最详细安装教程(一)