批量下载Markdown文件到本地
# 批量下载Markdown文件到本地
在Markdown 文件中 可能存在远程引用图片的情况,但是在某些情况下 ,我们处于无网环境, 就可能造成Markdown 查看异常
> [图片](https://cn.bing.com/images/search?q=%25E5%259B%25BE%25E7%2589%2587&FORM=IQFRBA&id=31F3A37194BC03C4AD16D80C327FF51215AB2959)
1
此时 把远程文件替换成本地文件即可
> [图片](xxxx)
1
数量少的情况下可以手动下载,如果遇到数量较多的情况就需要脚本下载了
# Linux 批量下载Markdown文件并批量替换
#!/bin/bash
file=$1
# 获取所有符合格式的文本行
text_lines=$(grep -oP '\!\[图片\]\(\K[^)]+' "../$file")
# 循环处理每一行
for text_line in $text_lines; do
# 下载并保存链接对应的文件
filename=$RANDOM+".png"
echo "随机数: $filename"
wget -O "$filename" "$text_line"
# 替换括号内的链接为处理后的文件名
sed -i "s|$text_line|$filename|g" "../$file"
done
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# Win 批量下载Markdown文件并批量替换
$file = $args[0]
# 获取所有符合格式的文本行
$text_lines = Select-String -Path "..\$file" -Pattern '\!\[图片\]\(\K[^)]+' | ForEach-Object { $_.Matches.Value }
# 循环处理每一行
foreach ($text_line in $text_lines) {
# 下载并保存链接对应的文件
$filename = [System.IO.Path]::GetRandomFileName() + ".png"
Write-Host "随机文件名: $filename"
Invoke-WebRequest -Uri $text_line -OutFile $filename
# 替换括号内的链接为处理后的文件名
(Get-Content "..\$file") -replace [regex]::Escape($text_line), $filename | Set-Content "..\$file"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 使用
假设脚本命名 img.sh > img.sh xxx.md
上次更新: 2024/11/01, 16:22:32