每行转换一个单词

时间:2010-07-28 20:08:53

标签: vim scripting sed awk vi

我想将包含单词的文本文件,空格分隔到一个文件,其中每个单词出现在单独的行中

 sdf sdfsd= sdfsdf 
sdfsdf

将成为

  sdf
  sdfsd= 
  sdfsdf 
  sdfsdf

感谢

4 个答案:

答案 0 :(得分:6)

试试这个:

:%s/\s\+/\r/g

说明:

:%     // whole file
 s     // substitute
 \s\+  // some number of whitespace characters
 \r    // for carriage return

感谢@ Dummy00001了解+的想法。

答案 1 :(得分:1)

输入以下命令:

:%s​​ / / \ r / g

或任何回车适用于您的环境。 \ r for * nix,\ n for windows。

答案 2 :(得分:1)

这也很容易作为shell脚本编写,您不需要sedawk

bash$ for word in $(cat input.txt); do echo "$word" >> output.txt; done

答案 3 :(得分:1)

$ tr " " "\n"<file|sed -n '/^$/!p'
sdf
sdfsd=
sdfsdf
sdfsdf