脚本批量修改文件中链接的格式_shell的美妙

声明

着急的朋友可以直接看下面的编写脚本目录项

背景

最近https://raw.githubusercontent.com/被墙了,然后众所周知我们就无法访问上面的内容了,所以我自己用github当图床,然后我的博客现在的图片全都无法正常加载了
在这里插入图片描述

所以我需要更改到国内的链接仓库或者自己自己服务器搭建的仓库,那么我就要修改我现在整整131篇博文的图片链接,我想我会烦死的,所以我就想到了自己之前学的shell脚本,自动化批量修改文件链接的格式
在这里插入图片描述

背景二

我今天浏览我的blog的时候突然发现一些照片无法正常访问,然后突然想到自己之前从gitee搬迁到github的原因,就是因为gitee有1M大小的显示,一旦图片大于1M就无法正常展示

所以2020年3月4日17:20 又一次批处理我的文件链接,并且在此之前花了整整一个下午去搭建我的私有服务器图床

背景三

发现了cdn.jsdelivr无缝衔接github仓库,而且带宽无限,然后就用上了,毕竟自己的服务器带宽只有1M

单文件测试

非插入测试

sed -e "s/https:\/\/raw.githubusercontent.com\/wolfdan666\/BlogPic\/master\//https:\/\/gitee.com\/wolfdan\/BlogPic\/raw\/master\//g" ARSTB打卡第44周-44-521.md

解读

  • -e是表示用后面的脚本执行
  • s/./../表示用.替换..,然后最后加一个g表示全局替换
  • 其中对于链接中用到的每一个/都要在前面添加\来转义
  • 最后的是要执行脚本的文件名
  • 当然这个脚本是sed执行流处理,所以不会修改文件内容,只是把修改结果打印到stdout,这里的stdout就是我们的命令行终端
  • 我们要修改文件的话,就要把-e改成-i

结果截取片段

# 修改前
(https://raw.githubusercontent.com/wolfdan666/BlogPic/master/books/%E4%B8%80%E7%A6%85_%E4%BD%A0%E6%80%BB%E8%AF%B4%E6%B2%A1%E4%BA%8B.jpg)

# 运行上面的脚本之后
(https://gitee.com/wolfdan/BlogPic/raw/master/books/%E4%B8%80%E7%A6%85_%E4%BD%A0%E6%80%BB%E8%AF%B4%E6%B2%A1%E4%BA%8B.jpg)

插入测试(总感觉哪里怪怪的)

sed -i "s/https:\/\/raw.githubusercontent.com\/wolfdan666\/BlogPic\/master\//https:\/\/gitee.com\/wolfdan\/BlogPic\/raw\/master\//g" ARSTB打卡 第44周-44-521.md

解读

这里就是上面的脚本把-e改成-i

结果展示

sed修改文件,git查看差异
在这里插入图片描述

文件批处理

操作前请备份,或者有git仓库,可以回滚

测试find

for n in `find . -name "*.md"`;do echo $n;done

在这里插入图片描述

编写脚本

wolfdan@wolfdan-PC $ vim chlink.sh
wolfdan@wolfdan-PC $ cat chlink.sh
#!bin/bash

echo "请开始你的表演---脚本出自:www.wolfdan.cn  , 作者: 单林敏"
sum=0

for n in `find . -name "*.md"`
do
        ((sum++))
        sed -i "s/https:\/\/raw.githubusercontent.com\/wolfdan666\/BlogPic\/master\//https:\/\/gitee.com\/wolfdan\/BlogPic\/raw\/master\//g" $n
done

echo "操作了{$sum}个文件"
echo "请仔细核查,建议使用VScode的git工具查看更改差异更香"
 wolfdan@wolfdan-PC $ bash chlink.sh
请开始你的表演---脚本出自:www.wolfdan.cn  , 作者: 单林敏
操作了{143}个文件
请仔细核查,建议使用VScode的git工具查看更改差异更香
 

背景二的代码编写

发现windows使用git的bash处理速度比linux下面的原生bash处理速度相差甚远!

单林敏@DESKTOP-A7T3V67 MINGW64 /f/hexo/blog/source (master)
$ ls
_drafts  _posts  about  ads.txt  alipay.jpg  categories  chlink.sh  CNAME  links  tags  捐赠  下雪了

单林敏@DESKTOP-A7T3V67 MINGW64 /f/hexo/blog/source (master)
$ vim chlink.sh

单林敏@DESKTOP-A7T3V67 MINGW64 /f/hexo/blog/source (master)
$ cat chlink.sh 
#!bin/bash

echo "请开始你的表演---脚本出自:www.wolfdan.cn  , 作者: 单林敏"
sum=0

for n in `find . -name "*.md"`
do
        ((sum++))
        #sed -i "s/https:\/\/raw.githubusercontent.com\/wolfdan666\/BlogPic\/master\//https:\/\/gitee.com\/wolfdan\/BlogPic\/raw\/master\//g" $n
        sed -i "s/https:\/\/gitee.com\/wolfdan\/BlogPic\/raw\/master/https:\/\/www.wolfdan.cn\/img/g" $n
done

echo "操作了{$sum}个文件"
echo "请仔细核查,建议使用VScode的git工具查看更改差异更香"

单林敏@DESKTOP-A7T3V67 MINGW64 /f/hexo/blog/source (master)
$ bash chlink.sh 
请开始你的表演---脚本出自:www.wolfdan.cn  , 作者: 单林敏
操作了{146}个文件
请仔细核查,建议使用VScode的git工具查看更改差异更香

真香
在这里插入图片描述

背景三代码编写

单林敏@DESKTOP-A7T3V67 MINGW64 /f/hexo/blog/source (master)
$ vim chlink.sh

单林敏@DESKTOP-A7T3V67 MINGW64 /f/hexo/blog/source (master)
$ cat chlink.sh 
#!bin/bash

echo "请开始你的表演---脚本出自:www.wolfdan.cn  , 作者: 单林敏"
sum=0

for n in `find . -name "*.md"`
do
        ((sum++))
        #sed -i "s/https:\/\/raw.githubusercontent.com\/wolfdan666\/BlogPic\/master\//https:\/\/gitee.com\/wolfdan\/BlogPic\/raw\/master\//g" $n
        #sed -i "s/https:\/\/gitee.com\/wolfdan\/BlogPic\/raw\/master/https:\/\/www.wolfdan.cn\/img/g" $n
        sed -i "s/https:\/\/www.wolfdan.cn\/img/https:\/\/cdn.jsdelivr.net\/gh\/wolfdan666\/BlogPic/g" $n
done
echo "操作了{$sum}个文件"
echo "请仔细核查,建议使用VScode的git工具查看更改差异更香"

单林敏@DESKTOP-A7T3V67 MINGW64 /f/hexo/blog/source (master)
$ bash chlink.sh
请开始你的表演---脚本出自:www.wolfdan.cn  , 作者: 单林敏
操作了{149}个文件
请仔细核查,建议使用VScode的git工具查看更改差异更香

单林敏@DESKTOP-A7T3V67 MINGW64 /f/hexo/blog/source (master)
$ 

在这里插入图片描述

检查

VScode初步检查

用vscode的git查看十分方便,还可以随时撤销更改
在这里插入图片描述

hexo s检查

hexo clean && hexo g && hexo s检查
在这里插入图片描述

Have fun with shell

shell真的好爽,自动化脚本,减去人工频繁操作

我因为背景二更新文章小插曲

因为hexo没有文章分类,我100多篇博文,所以很难找,然后用shell查找非常愉悦

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章