家里孩子上小学后,老师经常布置电子版作文作业。每次写完,总要在格式上花不少时间:标题居中、段落首行缩进、统一标点符号……作为家长,改一次两三次还行,次数多了真有点吃不消。
前阵子我琢磨了个小办法,用几行bash脚本自动完成文本替换,批量处理孩子的作文文件,几分钟搞定以前半小时的活儿。比如把所有全角逗号换成半角,或者给每段开头加上两个空格,都可以一键完成。
最简单的文本替换命令
Linux和macOS自带的sed命令就能实现文本替换。比如要把文件里所有的“。”换成“~”,可以这样写:
sed -i 's/。/~/g' zuowen.txt
这里的 s/。/~/g 意思是“查找所有‘。’并替换成‘~’”,-i 表示直接修改原文件。如果不想改原文件,可以去掉 -i,结果会输出到屏幕上。
批量处理多个文件
孩子一个学期写了十几篇作文,总不能一个个改。写个简单循环就行:
for file in *.txt; do
sed -i 's/^/ /' "$file"
done
这段脚本会遍历当前目录下所有 .txt 文件,在每一行前面加两个空格。比如孩子写作文没缩进,运行一下就整齐了。
实际应用场景
有一次老师要求把所有“妈妈”改成“母亲”,我直接用了这行:
sed -i 's/妈妈/母亲/g' *.txt
十来个文件,一秒完成。孩子在旁边看得直拍手,还说“爸爸你这比Word快多了”。
其实这些操作不难,装个Mac或用Windows的WSL都能跑。平时教孩子打字、写作文的时候,顺便让他看看这些小脚本怎么工作,也算是一种潜移默化的逻辑训练。
现在我家娃写完作文,自己都会问:“要不要跑一下爸爸的那个替换脚本?”