腳本批量修改文件中鏈接的格式_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查找非常愉悅

在這裏插入圖片描述

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