101 lines
2.5 KiB
Markdown
Executable file
101 lines
2.5 KiB
Markdown
Executable file
---
|
||
name: tolaria-update
|
||
description: 更新Tolaria笔记库(~/Desktop/Tolaria笔记库/)中的Markdown文件。当需要修改、插入、替换Tolaria笔记内容时使用。包含可靠的文件写入方法和验证步骤。
|
||
---
|
||
|
||
# Tolaria笔记库文件更新技能
|
||
|
||
## 触发条件
|
||
|
||
- 需要更新 `~/Desktop/Tolaria笔记库/` 中的任何 `.md` 文件
|
||
- 需要同步更新笔记库和移动硬盘JZAO上的对应内容
|
||
|
||
## 核心规则
|
||
|
||
### 路径映射
|
||
|
||
```
|
||
Tolaria笔记库(人类可读层): ~/Desktop/Tolaria笔记库/
|
||
移动硬盘JZAO(资产实际层): /Volumes/JZAO/光湖项目/短剧视频AI/
|
||
```
|
||
|
||
读笔记时 -> 映射到JZAO硬盘核实最新状态
|
||
写笔记时 -> 两边同步更新
|
||
|
||
### 文件写入方法(按优先级)
|
||
|
||
#### 方法一:单行替换 -> sed
|
||
|
||
```bash
|
||
sed -i '' 's/旧文本/新文本/' "文件路径"
|
||
```
|
||
|
||
- macOS用 `sed -i ''`(空字符串表示不备份)
|
||
- 适合替换一行内的文本
|
||
- 含中文/特殊Unicode符号也能正常工作
|
||
|
||
#### 方法二:多行插入 -> Python readlines + insert
|
||
|
||
```python
|
||
filepath = '文件路径'
|
||
with open(filepath, 'r', encoding='utf-8') as f:
|
||
lines = f.readlines()
|
||
|
||
for i, line in enumerate(lines):
|
||
if '定位关键词' in line:
|
||
insert_after = i
|
||
break
|
||
|
||
new_content = '''
|
||
新内容行1
|
||
新内容行2
|
||
'''
|
||
lines.insert(insert_after + 1, new_content)
|
||
|
||
with open(filepath, 'w', encoding='utf-8') as f:
|
||
f.writelines(lines)
|
||
```
|
||
|
||
- 逐行读取 -> 找到位置 -> insert -> 逐行写回
|
||
- **不要**用 `read().replace().write()`,会静默失败
|
||
|
||
#### 方法三:创建新文件 -> cat heredoc
|
||
|
||
```bash
|
||
cat > "文件路径" << 'ENDOFFILE'
|
||
文件内容
|
||
ENDOFFILE
|
||
```
|
||
|
||
- 适合在JZAO移动硬盘上创建新文件
|
||
- 用单引号防止变量展开
|
||
|
||
### 绝对禁止
|
||
|
||
- **禁止** Python `str.replace()` 全文件替换 -> Mac上含中文/emoji/特殊Unicode的Markdown会静默失败
|
||
- **禁止** 只改一边 -> 笔记库和JZAO必须同步
|
||
- **禁止** 写入后不验证
|
||
|
||
## 验证步骤
|
||
|
||
每次写入后**必须**用grep验证:
|
||
|
||
```bash
|
||
grep -n "关键词" "文件路径"
|
||
```
|
||
|
||
- 确认新内容出现了
|
||
- 确认旧内容已消失(如果是替换)
|
||
- grep返回空 = 写入失败,需要重试
|
||
|
||
## 完整工作流
|
||
|
||
```
|
||
1. 读Tolaria笔记 -> 映射到JZAO硬盘核实实际状态
|
||
2. 确定要更新的内容
|
||
3. 选择写入方法(sed / Python readlines / cat heredoc)
|
||
4. 执行写入
|
||
5. grep验证是否生效
|
||
6. 如果涉及JZAO文件,同步更新
|
||
7. 再次验证两边一致
|
||
```
|