引言
我校去年开始使用和合本圣经作为语文课本。有弟兄姊妹提到这样做是否能够覆盖公立小学教的生字?于是我捡起未全职前的老本行,对此问题做了一点分析。代码写的很仓促,肯定有错误,但结果基本上是有效的。大家若发现问题请给我留言。
步骤
-
下载和合本圣经文本文件和小学生字表文本文件。
-
将两个文本都存为txt文件(utf-8格式)。
-
使用linux下的shell脚本fmt对这两个文件进行处理,将其变为每行仅一个汉字的文件。此fmt脚本的源代码如下:
#! /bin/sh
# 本脚本用于格式化中文文本文件为每行一字的文件。中文文本请事先转换为utf-8编码格式
# 用法:./fmt 文本名
# 先以less列出文本内容,$1变量为由用户输入的文件名
# 删除所有英文字母
# 删除BOM
# 再用sed去除所有标点
# 之后继续使用sed去除所有空格
# 继续使用sed去除所有空行
# 之后使用tr去除所有unix文本文件换行符“CRLF”(八进制代码为 15 12)
# fold命令用于处理中文文本,每两个字节换行,将文本文件变成每行一字
# sort将文字由小到大排序
# uniq -c去重,并显示计数
# sort -k1,1nr -k2将计数值由大到小排序,再将文字由小到大排序
# 显示前n行,$2值由用户输入。默认值为25
less $1|
sed ‘s/[a-zA-Z]//g’ |
sed ‘s/xEFxBBxBF//’ |
sed ‘s/[,()、,。?!::“”《》【】——’;]//g’ |
sed ‘s/[[:space:]]//g’|
sed /^$/d|
sed ‘s/[0-9]//g’|
tr -d ‘