obsidian 的本地图片都是![[CleanShot 2024-04-04 at 16.21.29.png]]格式,其他 markdown 软件打开看不到图片怎么办? 比如 obsidian 显示附件,但是 typio 就只显示代码 ![[IMG-20240414222145480.jpg]] ![[IMG-20240414222201577.jpg]] ![[IMG-20240414222223736.jpg]] ![[IMG-20240414222304879.jpg]] ![[IMG-20240414222754174.jpg]] ![[IMG-20240414222820935.jpg]]
我的所有图片文件都在 media/Images 目录下,你要是用这个脚本,记得替换一下这个路径。另外,建议先把所有笔记复制备份一下,避免脚本修改失败,导致无法恢复。 ```shell #!/bin/bash # 定义替换图像格式的函数 replace_image_format() { file="$1" # 定义目标格式的正则表达式(包含"media/Images"的情况) pattern_with_path='!\[\[media/Images/([^]]+)\]\]' # 定义目标格式的正则表达式(不包含"media/Images"的情况) pattern_without_path='!\[\[([^]]+)\]\]' # 读取文件内容 content=$(cat "$file") # 检查文件内容是否包含"media/Images",并根据情况替换图像格式 if [[ "$content" == *"media/Images"* ]]; then new_content=$(echo "$content" | sed -E "s#$pattern_with_path#![](media/Images/\\1)#g") else new_content=$(echo "$content" | sed -E "s#$pattern_without_path#![](media/Images/\\1)#g") fi # 处理文件名中的宽度内容(如果有),并移除竖线 new_content=$(echo "$new_content" | sed -E 's/\|([0-9]+)//g') # 将修改后的内容写回文件 echo "$new_content" > "$file" } # 要处理的目录 target_directory="/root/fix_md" # 查找目标目录及其子目录下的所有.md 文件,并执行替换图像格式操作 find "$target_directory" -type f -name "*.md" | while read -r file; do replace_image_format "$file" done ```