我有一个index.html
文件,其内容类似于
<script src="js/config.js"></script>
<link href="css/colorpicker.min.css" rel="stylesheet" />
IOW,它引用了许多*.js
和*.css
文件。我想用*.js
和*.css
替换所有出现的*.css?rel=1569974280190463223
和*.js?rel=1569974280190463223
,其中1569974280190463223
是一个时间戳值,所以上面的行看起来像>
<script src="js/config.js?rel=1569974280190463223"></script>
<link href="css/colorpicker.min.css?rel=1569974280190463223" rel="stylesheet" />
我有一个执行此操作的shell脚本
timestamp="$(($(date +%s%N)-T))"
sed -i -e 's|\.css"|\.css?rel=$timestamp"|g' -e 's|\.js"|\.js?rel=$timestamp"|g' index.html
但是index.html
文件最终看起来像
<script src="js/config.js?rel=$timestamp"></script>
<link href="css/colorpicker.min.css?rel=$timestamp" rel="stylesheet" />
我在sed
行中缺少什么?
答案 0 :(得分:1)
您在单引号内引用了shell变量$timestamp
。
请尝试:
sed -i -e 's|\.css"|\.css?rel='"$timestamp"'"|g' -e 's|\.js"|\.js?rel='"$timestamp"'"|g' index.html