sed命令替换html文件中所有js的出现

时间:2019-03-27 19:56:46

标签: html loops for-loop sed

我有一堆HTML文件,我需要用它们以新的js路径替换所有出现的js(当前已被Jenkins阻止)。

例如:在一个名为www的文件夹中,我有一些HTML文件 instance take index.html有src='https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js'></script>的许多引用,我需要用src=https://<some-jenkins-server>/userContent/bootstrap.min.css

替换此行

我应该能够使用带有sed命令的循环来替换文件夹中一堆html文件中的所有JS

1 个答案:

答案 0 :(得分:0)

尝试一下:

for htmlfile in *.html; do
    sed -i "s/\(.*src=['\"]\)[^'\"]*\.js\(['\"].*\)/\1https:\/\/<some-jenkins-server>\/userContent\/bootstrap.min.css\2/g" $htmlfile
done

说明

for htmlfile in *.html; do      # loop over all *.html files
   ...
done


sed -i "              # start sed with option inplace
s/                    # substitution
\(.*src=['\"]\)       # store everything up to ' or " in arg1
[^'\"]*\.js           # the javascript
\(['\"].*\)           # store everything up to end of line in arg2
/\1                   # write arg1
https:\/\/<some-jenkins-server>\/userContent\/bootstrap.min.css  # write replacement
\2                    # write arg2
/g"                   # global on whole line
$htmlfile             # inputfile

如果sed版本没有适当的选项(-i),则需要将输出重定向到文件。