我正在为一个朴素的布尔信息检索系统做一个更快的测试,我想使用awk,grep,egrep,sed或类似的东西和管道将文本文件分割成单词,并将它们保存到其他文件中,每行一个单词。示例我的文件包含:
Hola mundo, hablo español y no sé si escribí bien la
pregunta, ojalá me puedan entender y ayudar
Adiós.
输出文件应包含:
Hola
mundo
hablo
español
...
谢谢!
发布于 2013-03-19 22:13:10
使用tr:
tr -s '[[:punct:][:space:]]' '\n' < file
发布于 2017-02-01 19:44:10
最简单的工具是fmt:
fmt -1 <your-file
fmt设计用于换行以适合指定的宽度,如果您提供-1
,它会紧跟在单词后面换行。有关文档,请参阅man fmt
。灵感来自http://everythingsysadmin.com/2012/09/unorthodoxunix.html
发布于 2013-03-19 22:06:56
使用sed
$ sed -e 's/[[:punct:]]*//g;s/[[:space:]]\+/\n/g' < inputfile
基本上,这会删除所有标点符号,并将所有空格替换为换行符。这还假设您的sed
风格理解\n
。有些则不是--在这种情况下,您可以只使用文字换行符(即,通过将其嵌入到引号中)。
https://stackoverflow.com/questions/15501652
复制相似问题