跟往常一样,在日常跟诊中,获取完患者的证素后,在心里默想自己方子,再比对老师开的方,药味与剂量不相差三味为佳。不过,今日的主题不是跟着老师门诊抄方辨证,老师的门诊有记录电子病案的习惯,小电脑上已经陆陆续续地记录下七八年的病例,每一份都以 txt 格式保存在 Windows 7 系统下,这是一个很好的学习老师临床思想的材料,十分适合做数据分析。
作为一个长期使用 Obsidian 进行笔记和资料管理的人,我决定将这些病案导入 Obsidian 作为我的病例学习资料库,Obsidian 强大的插件库和本地离线存储都满足我的需求,以及全局检索极大方便了获取方剂信息。
见招拆招#
然而,当我将文件拷贝到我自己的 Mac 中后,问题接踵而至。
首先,Windows 与 Mac 系统的文本格式不同,许多 txt 文件在拷贝到 Mac 后出现乱码,甚至无法打开。经过检查,原因是老师小电脑 Windows7 采用的是 GB18030 编码格式,而 Mac 使用的是 UTF-8 格式,具体可详见知乎上的一则解释:为什么 Windows 中文默认使用 GB18030 而不是 UTF-8?
其次,Obsidian 使用 Markdown 格式进行存储,这意味着我需要将几千例病案转换成 md 格式。
但这些都是小问题,使用 Terminal(终端机)两行代码即可解决。
iconv 命令#
iconv 是一个用于转换文件编码的工具,这条命令行可以理解为 “使用 iconv 命令,for GB18030 文件 to UTF-8 文件,output 输出转换后的文件”。但面对上千个病例文件,我们需要进行批量转换的命令:
mv 命令#
解决了编码格式的问题,再看如何转换 Obsidian 支持的 markdown 格式文件:
mv 是 “移动 / 重命名” 命令,以改变文件的扩展名,可以理解为 “Move .txt 文件为.md 文件 “。批量转换命令行为:
借东风#
本以为转换完,资料库的整理就可以告一段落了,但经过初步检查门诊病案文件,发现令人头疼的问题!
- 病案中存在重复的文件
- 重复的文件中存在 “文件名相同”,但 “内容不同” 的情况
面对数千个病例文件,手动逐一检查、删除冗余文件?显然不现实,不仅是对一个正直风华正茂的你和我时间上的极大浪费,而且重复千百次的机械操作,令人心生退意,想想就让人头皮发麻。
在多次苦思之后,我决定借个时代的东风,运用起 ChatGPT 的编程能力,来帮助我完成这些琐碎的工作。
与 ChatGPT 沟通#
ChatGPT 的写代码业务能力已经十分出色了,但大部分时候仍然会输出不满意的结果。那么重点应当着眼于与 ChatGPT 的沟通技巧上。
- 提出问题,旨在让 GPT 输出解释教程。
- 需求要写得详细,和你写论文一样详细,每一步都要清清楚楚。
- 反复沟通,就像导师让你反复修改开题报告一般,给 GPT 提要求,GPT 会联系上下文,满足你的要求。
- 若遇到不懂的知识点,另开一篇 “新交谈”,以不影响当前对话。
- 若反复修改的结果不满意,需开新的对话框,找出前段沟通出现的问题,整理提问文本,重新进行输出,直到满意为止。
- 备份原文件,进行小样本试验,若出现问题,反馈 GPT 进行修改,重复 3-5 步骤。
以下是我最终的提问文本(另开 “新交谈” GPT 输出结果,结果满意,耶!)
(这段命令行可直接开箱食用~ 但要注意一定要先 cd 文件夹!)
附:用 ChatGPT 优化转换编码与文件格式步骤#
明确需求:批量转换文件夹中 GB18030 为 Unicode UTF-8 格式并换成.md 格式!
在 ChatGPT 对话提出需求:
验证命令行时发现的具体问题,反馈 GPT 进行修改:
这就是芸芸众生中,一个人类为解决某特定需求而尝试接触新事物的一次尝试~
关于 ChatGPT 协助完成工作方面的嘛,就像中医找齐证素并准确辨证,开出了一份个性化处方。只要找对方法,都能抵达目标!