【发布时间】:2011-03-22 09:15:37
【问题描述】:
我想将包含单词、空格分隔的文本文件转换为每个单词出现在单独一行的文件
sdf sdfsd= sdfsdf
sdfsdf
会变成
sdf
sdfsd=
sdfsdf
sdfsdf
谢谢
【问题讨论】:
我想将包含单词、空格分隔的文本文件转换为每个单词出现在单独一行的文件
sdf sdfsd= sdfsdf
sdfsdf
会变成
sdf
sdfsd=
sdfsdf
sdfsdf
谢谢
【问题讨论】:
试试这个:
:%s/\s\+/\r/g
解释:
:% // whole file
s // substitute
\s\+ // some number of whitespace characters
\r // for carriage return
感谢@Dummy00001 提出+ 的想法。
【讨论】:
输入以下命令:
:%s/ /\r/g
或任何适合您环境的回车。 \r 代表 *nix,\n 代表 windows。
【讨论】:
\+::%s/ \+/\r/g
<C-V><C-M> 输入一个换行符,然后显示为^%。
这也很容易写成一个shell脚本,你不需要sed或awk:
bash$ for word in $(cat input.txt); do echo "$word" >> output.txt; done
【讨论】:
$ tr " " "\n"<file|sed -n '/^$/!p'
sdf
sdfsd=
sdfsdf
sdfsdf
【讨论】: