Shell 让sed从终端读取数据

Shell 让sed从终端读取数据,shell,unix,sed,terminal,Shell,Unix,Sed,Terminal,如果这是个愚蠢的问题,我很抱歉,但我对这个问题有点陌生。 我需要编写一个脚本从终端获取一个字符串,并使用sed将其打印回终端,每行一个单词。 例如,“这是输入”应该给我 这 是 输入 我试着写剧本,但似乎不管用 #!/bin/sh echo -n 'Enter the text:' read text sed -i "/$text/s/ /\n/g" 我已将其保存在名为1.sed的文件中,并使用命令运行它。/1.sed 有人能告诉我哪里出了问题吗?将您的sed命令更改为以下命令: echo

如果这是个愚蠢的问题,我很抱歉,但我对这个问题有点陌生。 我需要编写一个脚本从终端获取一个字符串,并使用sed将其打印回终端,每行一个单词。 例如,“这是输入”应该给我


输入

我试着写剧本,但似乎不管用

#!/bin/sh
echo -n 'Enter the text:' 
read text
sed -i "/$text/s/ /\n/g"
我已将其保存在名为1.sed的文件中,并使用命令运行它。/1.sed
有人能告诉我哪里出了问题吗?

将您的
sed
命令更改为以下命令:

echo 'this is input' | sed -r 's/(\w+)\s+/\1\n/g'

(\w+)\s+
-在
\1

中捕获后跟一个或多个空格的单词,并使用
awk

echo 'this is input' | awk 1 RS=" "
this
is
input
另一个版本

echo 'this is input' | awk 'gsub(/ /,"\n")'

快,还有我要找的。谢谢你@jkshah