Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 带25+的线;当第一个逗号出现时,单词被拆分_Python_Linux_Bash_Text_Split - Fatal编程技术网

Python 带25+的线;当第一个逗号出现时,单词被拆分

Python 带25+的线;当第一个逗号出现时,单词被拆分,python,linux,bash,text,split,Python,Linux,Bash,Text,Split,我有一个文本文件,其中超过25个单词的行应该被分解: 确切地说,我希望代码执行以下操作: 1) 计算每行中的单词数(单词定义为任何由空格字符分隔的单词…因此类似“示例单词”的单词仍被视为单词)。如果字数小于或等于25,只需返回该行即可 2) 如果为false(大于25),则从左到右搜索行中的第一个逗号字符,然后在逗号后立即拆分 例如: line1: phrase from a test line, which I want to split, and I don't know how. 到

我有一个文本文件,其中超过25个单词的行应该被分解:

确切地说,我希望代码执行以下操作:

1) 计算每行中的单词数(单词定义为任何由空格字符分隔的单词…因此类似“示例单词”的单词仍被视为单词)。如果字数小于或等于25,只需返回该行即可

2) 如果为false(大于25),则从左到右搜索行中的第一个逗号字符,然后在逗号后立即拆分

例如:

line1: phrase from a test line, which I want to split, and I don't know how. 

3) 如果没有找到逗号字符,则从左到右搜索第一个“and”(包括后面的空格,因此它不会像android那样拆分单词)和紧跟在“and”之前拆分(与之前拆分的位置不同)

范例

line1: phrase from a long sentence and I want to split

5) 如果没有找到“and”,则在25个单词后将行拆分(这是上面链接中的其他解决方案可以做到的)

6) 将代码从1-5循环运行7次,因为即使在一行被分解之后,剩余的行仍然可以有25个字以上。代码不需要高效或优雅,所以我认为循环是最简单的编码方式

7) 保存到output.txt文件

请注意,我只希望上面的中断线超过25个字。。。分解每个逗号、冒号、分号和“and”字并不是我所需要的


事先非常感谢你

无需重新发明车轮。您需要以下命令:

演示:


嗨,格伦·杰克曼,谢谢你。这有点接近我的需要,类似于我的链接中的建议。但是,在此之前,我希望行被逗号、冒号和分号分开(按照我问题中提到的顺序)。你的解决方案是最后一步。代码是什么?我没有编码方面的背景,而且还是个新手。
line1: phrase from a long sentence and I want to split
line1: phrase from a long sentence
line2: and I want to split
fold -s -w25 file 
fold -s -w25 <<END
123456789.123456789.123456789.
phrase from a test line, which I want to split, and I don't know how.
END
123456789.123456789.12345
6789.
phrase from a test line,
which I want to split,
and I don't know how.