玩物誌六
随着日常的使用,obsidian中的笔记数量会逐渐增多。但obsidian的使用不是一蹴而就的,一般都是一边使用,一边构建自己的笔记库,谁也不能一开始就设计好一个满足自己各项需求的库形式。那么在巨量的笔记情况下如何批量修改内容就是一个比较重要的需求,下面从需求出发分享目前我用过的几种方式供大家参考:
批量修改标签
Tag wrangler插件
使用该插件可以在ob的标签面板右键直接修改标签内容,但是不可以删除标签。插件直接在社区市场安装后启用即可,无需任何设置。
Sed命令
Sed是linux中的字符串替换命令,可以检索并替换文件内部的目标字符串。因为ob的笔记都是md格式,系统可以直接读取,这样我们就可以使用sed命令批量修改笔记内容或者删除特定内容,比如无用的标签。
命令格式:
sed -i 's/目标字符串/替换字符串/g' `grep "目标字符串" -rl 开始递归的根目录`
其中,目标字符串是需要修改的内容,替换字符串是修改后的内容,如果需要删除可以在替换字符串位置输入 空格
即可。 /
是界定符,分隔命令的不同部分,但当我们使用分级标签时,目标字符串就同样会含有 /
字符,就会导致冲突,处理方式如下:
当目标字符串中含有 @
/
#
这样的特殊字符时,我们得看里面的内容来选择特定的界定符,例如:
- 里面含有"/",可以选择“#”或“ @”作为界定符;
- 里面含有“#”,可以选择“@”或“/”作为界定符;
- 里面含有“@”,可以选择“/”或“#”作为界定符。
也就是说以上三个都可以做界定符,选择一个不冲突的即可。
安卓手机使用sed命令
首先安装模拟软件Termux,正规软件商店都有。启动软件,输入 cd /mnt/sdcard
即可进入手机的内存卡,使用 ls
命令查看当前目录下的内容,然后使用 cd
命令一步步切换到obsidian的笔记库目录,根据需要使用sed进行处理即可。
批量修改Metadata
支持修改metadata的插件很多,这里推荐使用DB folder。理由是该插件支持dataview查询语句,灵活性更强。像YAML database也可以修改,但这个插件只能根据标签或者文件夹检索笔记,不够灵活。
使用DB folder可以在检索出表格中直接为笔记批量的添加新的属性字段或者批量的修改字段名称,也可以直接在表格中直接添加字段的值。
当然,sed命令也是可以修改metadata内容的,但需要注意修改内容不像标签有 #
作为标识,因此有可能会删除其他不想删除的内容。
其他相关资料请点击索引目录。