如何将错位提取的术语表文本恢复为单词-释义关联的双列格式?
如何将错位提取的术语表文本恢复为单词-释义关联的双列格式?
这种情况真的太常见了!不管是图片转文本还是PDF复制,经常会把原本上下对应的单词和释义拆成两堆,下面给你几个实用的解决方法,GUI和轻量CLI都有:
GUI工具方案
1. LibreOffice Calc(或Microsoft Excel)——最直观的表格法
这应该是最容易上手的方法,不用复杂操作:
- 第一步:把所有提取的文本(包括单词和释义)全选复制,粘贴到Calc的第一列(A列),确保每个条目单独占一行,比如A1是
word1,A2是word2,...,A5是:meaning1,A6是:meaning2以此类推。 - 第二步:数清楚单词的总数(比如这里是4个),假设总共有N个单词,那么前N行是单词,从第N+1行到第2N行是释义。
- 第三步:在B1单元格输入公式
=INDIRECT("A"&ROW()+N),比如N=4的话就是=INDIRECT("A"&ROW()+4),然后把这个公式下拉到B4单元格——这样B1就会自动对应A5的:meaning1,B2对应A6的:meaning2,完美匹配! - 第四步:选中B列,右键选择「复制」,再右键选「粘贴为值」(避免公式失效),之后删除A列从第N+1行开始的释义内容。如果想要合并成一列的格式,还可以在C1输入
=A1&" "&B1,下拉后复制C列的内容就是你要的word1 :meaning1格式了。
2. Notepad++——文本编辑控的首选
如果你习惯用文本编辑器,Notepad++的列编辑功能能快速搞定:
- 第一步:把所有文本粘贴到Notepad++中,确保每个单词和释义各占一行。
- 第二步:数出单词的数量N,找到第N+1行(也就是第一个释义行),按住
Alt键(列选择模式),从该行行首拖动鼠标,选中所有N个释义行的完整内容。 - 第三步:剪切选中的释义内容,然后把光标移到第一个单词行的末尾,按一下
Tab或者空格留出间隔,接着按住Alt键,把光标依次放在每个单词行的末尾,形成一个列选择区域,最后粘贴刚才剪切的释义——这样每个释义就会对应到单词的右侧了。
轻量CLI方案(awk命令)
如果你能接受简单的命令行,awk一行代码就能自动完成匹配,Linux/macOS自带awk,Windows可以用Git Bash或者WSL:
- 先把提取的文本保存为
glossary.txt文件。 - 打开终端,先计算单词数量(总行数的一半):
n=$(($(wc -l < glossary.txt)/2)) - 然后执行匹配命令:
这个命令会自动把前N行的单词存入数组,后面的N行依次对应到前面的单词,输出就是你要的awk -v num=$n 'NR<=num {words[NR]=$0} NR>num {print words[NR-num] " " $0}' glossary.txtword :meaning格式,还可以把结果保存到新文件:awk -v num=$n 'NR<=num {words[NR]=$0} NR>num {print words[NR-num] " " $0}' glossary.txt > fixed_glossary.txt
备注:内容来源于stack exchange,提问作者Kris




