【问题标题】:Adding characters to the beginning and end of a line starting with a specific string将字符添加到以特定字符串开头的行的开头和结尾
【发布时间】:2011-07-26 04:36:43
【问题描述】:

我有很多 html 文件需要注释掉特定的 JavaScript 行:

<script src="/common/javascript/jquery/jquery.tools-1.2.4.min.js" type="text/javascript"></script>

我想通过命令行执行的操作是在目录中的 .htm 文件中搜索字符串:“/common/javascript/jquery/jquery.tools-1.2.4.min.js”并添加&lt;!--到包含字符串的相应行的开头,以及 --&gt; 到行尾。

有些文件包含type=,有些不包含,这就是为什么我想使用 src 值搜索并添加到行首和行尾的原因。

感谢您的帮助。我很感激。

【问题讨论】:

    标签: command-line sed grep replace


    【解决方案1】:

    如果您将“那整行”替换为要注释掉的整行 js,这将输出一个修改后的文件。

    sed 's/\(that whole line\)/&lt;&lt;!--\1--&gt;/' file.htm

    现在只需遍历目录中的所有文件

    for f in *htm; do sed 's/\(that whole line\)/<<!--\1-->/' $f > $f.new done

    我会让你弄清楚如何处理将它们移回正确的文件名。 (也许是一个新目录?也许是一个mv 命令?在你的情况下是最好的。)

    【讨论】:

    • 哦,抱歉,我刚刚意识到这是不对的,因为并非所有的行都是相同的。
    【解决方案2】:

    这是你想要的吗?

    for f in *.htm*; do
      mv "$f" "$f.tmp"
      sed 's#^\(.*common/javascript/jquery/jquery.tools-1.2.4.min.js.*\)#<!-- \1 -->#' "$f.tmp" > "$f"
      rm "$f.tmp" ;
    done
    

    【讨论】:

    • 这正是我想要的。完美运行!感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多