【问题标题】:Look for files in a directory, scan other directory files and replace all filename occurence在目录中查找文件,扫描其他目录文件并替换所有文件名出现
【发布时间】:2015-10-07 12:21:42
【问题描述】:

我希望完成具有以下要求的任务。

  1. 扫描dir1目录中的文件
  2. 查看dir2目录下的文件(文件的内容),将步骤1中找到的所有文件名替换为说

例子:

假设我在 css 目录中有 css 和 js 目录以及许多 css 文件,在 js 目录中有类似的 js 文件。我想扫描 jsp 目录中的所有 jsp 以查找 css/js 文件的出现,并将文件名替换/附加一个版本参数。

ie.. 说我有 css/example.css、js/example.js 和 jsp/example.jsp 如果 exmaple.jsp 包含:

<link rel = "stylesheet"...href = "example1.css"/>

现在我想要

<link rel = "stylesheet"...href = "example1.css?version=1"/>

理想的场景是替换jsp文件中css或js目录下所有文件的所有出现。

我正在探索是否有任何繁重的任务来实现这一点,或者使用任何脚本与一些 linux 命令的组合。

关于如何实现这一点的任何想法?

【问题讨论】:

    标签: javascript linux bash replace gruntjs


    【解决方案1】:

    我不知道我是否理解你。
    首先看css-dir。并且每次 i 变量将是该目录中的文件名。
    现在查看 jsp-dir,并将包含 i 变量的文件归档。
    将该文件名保存在 var1
    现在将该名称附加到您在 css-dir 中的文件名

    for i in `ls css-dir`
    do
        var1=`ls jsp-dir | grep $i`
         mv $i "$i.$var1"
    done
    

    【讨论】: