处理之前的文本如下图:
1、去除content.txt前面的 wav 名字
awk '{for(i=2;i<=NF;++i) printf $i " ";printf "\n"}' content.txt > trans.txt
2、去除trans.txt中的拼音和声调
去除声调数字
sed 's/[0-9]//g' trans.txt > no-num.txt
去除字母
sed 's/[A-Za-z]//g' no-num.txt > no-letter.txt
去除多余的空格
sed -e 's/[[:space:]][[:space:]]*/ /g' no-letter.txt > low-space.txt
//low-space.txt就是最终的text中的文本(未分词)--如下图
3、准备text中的wav 编号
取content.txt中的第一列
awk '{print $1}' cp-content.txt > out.txt
将 ‘.wav’ 后缀去掉
sed 's/\.wav//g' out.txt > nowav.txt
4、合并 nowav.txt 和 no-space.txt
paste -d "\t" nowav.txt low-space.txt > transcipt.txt
## bash文件总结
#!/usr/bin/env bash
cp content.txt cp-content.txt
awk '{for(i=2;i<=NF;++i) printf $i " ";printf "\n"}' content.txt > trans.txt
sed 's/[0-9]//g' trans.txt > no-num.txt
sed 's/[A-Za-z]//g' no-num.txt > no-letter.txt
sed -e 's/[[:space:]][[:space:]]*/ /g' no-letter.txt > low-space.txt
//low-space.txt就是最终的text中的文本(未分词)
awk '{print $1}' cp-content.txt > out.txt
sed 's/\.wav//g' out.txt > nowav.txt
paste -d "\t" nowav.txt low-space.txt > transcipt.txt
rm -rf trans.txt no-num.txt no-letter.txt low-space.txt out.txt nowav.txt //删除过程文件
处理后text如下图所示,可根据自己的需求再进行下一步处理