0

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


输入

我试着写剧本,但似乎没有用。

#!/bin/sh
echo -n 'Enter the text:' 
read text
sed -i "/$text/s/ /\n/g"

我已经将它保存在一个名为 1.sed 的文件中,并使用命令 ./1.sed 运行它 谁能告诉我哪里出错了?

4

2 回答 2

2

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

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

(\w+)\s+- 捕获一个单词,该单词后跟一个或多个空格\1

于 2013-10-01T23:25:15.660 回答
0

做同样的事情awk

echo 'this is input' | awk 1 RS=" "
this
is
input

另一个版本

echo 'this is input' | awk 'gsub(/ /,"\n")'
于 2013-10-02T05:41:25.710 回答