Huaiyao Jin

Huaiyao Jin

每日复习单词

最近工作上时常会记录一些单词、短语或句子,想着找到有效的办法去提醒自己复习。记录一下。

记录单词到文件

用 OpenAI Translator 翻译不清楚的单词、短语或句子,刚开始是手动复制粘贴到一个文本文件,后面感觉太麻烦,就改进一下。

设计了一个 alfred workflow,Command + C 复制单词,Option + E 调用以后它会将剪贴板里的内容以指定格式放入指定文件。

每日复习

思路是将 English.md 文件里以 ‘---’ 作为分隔符,把每一段切分出来,然后发送到 Things3 里。

利用一下 ChatGPT,一开始想用 Python 的,后来改用 Shell 了。ChatGPT 让生活美好了许多。

我自己写了发送到 Things3 的部分,整个脚本如下。

#!/bin/bash

cd "/Users/jinhuaiyao/Library/CloudStorage/OneDrive-Personal/Config/Mac_Script/"

rm output_file_*.txt

FILE="/Users/jinhuaiyao/Library/CloudStorage/OneDrive-Personal/MyNotes/English.md"

BUFFER=()
OUTPUT_NUM=1

while IFS= read -r LINE; do
  if [[ $LINE == --- ]]; then
    if [ ${#BUFFER[@]} -gt 0 ]; then
      printf '%s\n' "${BUFFER[@]}" > "output_file_${OUTPUT_NUM}.txt"
      BUFFER=()
      ((OUTPUT_NUM++))
    fi
  else
    BUFFER+=("$LINE")
  fi
done < "$FILE"

# 处理文件结尾的内容
if [ ${#BUFFER[@]} -gt 0 ]; then
  printf '%s\n' "${BUFFER[@]}" > "output_file_${OUTPUT_NUM}.txt"
fi


ls output_file_*.txt | while read file
do
word=`cat $file |grep -v '^$'| head -1`
expl=`cat $file |grep -v '^$'| sed -n '2,$'p`
if [ ${word:0:1} != '#' ]
then
  open "things:///add?title=${word}&notes=${expl}&when=today"
fi
done

如果某些单词不用再复习了,就再其前面加上 # 号,${word:0:1} != '#' 会去过滤。

最后把脚本加到 cron job 即可。

最后效果如下,直接变成当天的待办事项,相当“暴力”。

解决问题 新事物 Shell 英语学习 方法