html - bash 脚本 sed 用变量计数替换图像编号

标签 html bash shell sed

我有一个包含 200 张图像的 html 文档。现在的 html 页面只有所有名为 g001.jpg 的图像。图像目录中的图像名称为 g001.jpg 至 g200.jpg。我需要用 g002.jpg、g002.jpg、g004.jpg 等替换名称 g001.jpg。我一直在尝试用 bash 来做到这一点。这是我所拥有的:

#!/bin/bash
for i in {001..200}

do
sed "s/g001.jpg/g$i.jpg/g" gallery2.html > gallery3.html

done

**为了明确起见,我正在尝试重命名 html 文档中对图像文件名的引用。 html 文档不需要重命名。

这当然会将它们重命名为 g1.jpg 多次,然后以 g2.jpg 重新启动多次,然后 g3.jpg 多次,依此类推,直到我多次获得 g200.jpg 。我错过了什么?

提前致谢!

最佳答案

这里有很多问题。如果您像这样使用 sed ,它将替换每个出现的 g001.jpg 而不是第一个实例。另外,您想将 g001.jpg 替换为 g002.jpg、g002.jpg、g004.jpg,因此您需要以数字 2 开始循环。以下代码应该适合您:

for l in {2..200}
do
   i=$(printf "%03d" $l)
   sed -i.bak "1,/g001\.jpg/{s/g001\.jpg/g${i}.jpg/g;}" gallery2.html
done

请注意,由于上面的 -i 标志,sed 将进行内联编辑并将替换的文件保存在同一文件中。

关于html - bash 脚本 sed 用变量计数替换图像编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16172789/

相关文章:

linux - 从行中获取字符串,然后将其粘贴到 bash 中的另一个

linux - sed 在替换批处理文件中的单词时出现多个选项错误

python - 简化 shell 脚本中 python 测试的执行

android - 比 "adb shell screencap"更快的命令?

javascript - 上传图片并点击它出现在新标签页中

javascript - 获取单选按钮之前的状态点击事件/取消选中单选按钮(如果之前已选中)

javascript - 登录框的淡入淡出过渡

python - 如何使此 python 命令行成为 bash 中的别名?

linux - 提取 message.log 文件中部分时间戳的 Shell 脚本程序

html - CSS - 将图像转换成房子的形状