在输出文本文件中分割句子成新格式的Shell脚本?



我已经将圣经转换为纯文本文件,结果是这样的

$$  Genesis 40:1 It came to pass after these things that the butler and the baker of the king of Egypt ..
$$  Genesis 40:2 And Pharaoh was angry with his two officers, the chief butler and the chief baker.
$$  Genesis 40:3 So he put them in custody in the house of the captain of the guard, in the prison, the ..

我希望能够在文本文件上运行shell脚本,并让它通过文件运行,输出一个新的文件,看起来像这样

$$创世纪40:1

事情发生后,男管家和面包师埃及国王……

$$创世纪40:2

法老恼怒他的两个臣仆,就是酒政和酒政的首席面包师。$$创世纪40:3

于是他把他们关在护卫长的房子里监狱,那个…

我想我需要让它解析每行上的前X个字符,然后在该点将行分开,我是shell脚本的新手,似乎不知道如何处理文件来完成这个任务。

任何想法吗?

由于您只需要用两个换行字符替换数字后面的空格,因此您可以使用以下命令:

sed 's/([0-9]) /1nn/' <textfile >newfile

-将(第一个)一个数字后面跟着空格,替换为同一个数字后面跟着两个n

这个工作得很好,直到有一行写着"约翰一书1:1写在这里",然后它在错误的位置分割了这行。我该怎么解释呢?

要考虑到在名称前有数字和空格的行,我们可以在模式中包括一个字母和最后一个数字之前的所有内容:

sed 's/([a-z].*[0-9]) /1nn/' <textfile >newfile

最新更新