我正在尝试使用 AWK 将文本文档中的每个单词都放在一个新行上。我真的不知道如何使用 AWK,但我在网上找到了一些应该可以解决我的问题的命令。我尝试了以下命令:
$ awk '{ for (i = 1; i <= NF; i++) print $i }' input.txt > output.txt
和
$ awk '{c=split($0, s); for(n=1; n<=c; ++n) print s[n] }' input.txt > output.txt
但是,这两个命令的效果是一样的,就是去掉所有的空格。
为清楚起见,假设 input.txt 包含文本:
The fox jumped over the dog
output.txt 应该包含:
The
fox
jumped
over
the
dog
然而 output.txt 包含:
Thefoxjumpedoverthedog
我在 Windows 7 上使用 Cygwin 来使用这些命令。命令中有什么我遗漏的吗?
最佳答案
另一种选择
echo "the fox jumped over the dog" | awk -v OFS="\n" '{$1=$1}1'
从文件中读取 awk ... inputfile
但是,我不确定它能否解决您的问题。如果你的 awk
坏了你可以试试 tr
echo ... | tr ' ' '\n'
会做。
关于bash - 使用 AWK 将文本文件中的每个单词换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36291088/