bash:读取文件并在标准输出中每行打印1个单词

时间:2017-04-11 04:26:53

标签: bash shell

到目前为止,我的代码是:

#!/bin/bash

for word in $(<$1)
do
    echo "$word"
done

其中包含输入文件(SP =空格,TAB =制表符和EOL - 行尾):

&LT; SP&gt; 时间&lt; SP&gt; &lt; SP&gt; 来,&lt; TAB&gt; SP&gt; &lt; SP&gt; Walrus &lt; SP&gt; 说, &LT; SP&gt; SP&gt; SP&gt; &lt; SP&gt; 发言&lt; SP&gt; &lt; SP&gt; 很多&lt; SP&gt; 事物:&lt; EOL&gt;

将输出:

The
time
has
come,
the
Walrus
said,
to
speak
of
many
things:

我需要输出程序, word 的功能被定义为由 blank TAB 字符限定的任何字符序列。所以使用相同的输入,我希望我的脚本输出:

The
time
has
come,

the
Walrus
said,


to
speak
of
many
things:

关于如何实现这一目标的任何想法?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

如果我正确理解目标,您应该可以使用tr将空格和制表符转换为换行符来实现目标:

#!/bin/bash

tr ' \t' '\n' <"$1"