为什么SED不接受我的意见?

时间:2013-08-11 13:12:29

标签: unix sed user-input

您好我是unix的新手,并尝试制作一个脚本,使用SED从用户输入中删除标点符号。但它没有用。

read -p "Please enter a word or sentence: " word
sed -n 's/[^a-zA-Z ]//g' $word

如果我输入abcd。,abcd它会给我一个错误 “sed:无法读取abcd,.abcd:没有这样的文件或目录”

所以我猜这意味着它将变量$ word视为文件而不是我希望它处理的字符串。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

sed将参数视为输入文件。

请尝试以下方式:

echo "$word" | sed -n 's/[^a-z]//ig'

答案 1 :(得分:1)

这可能适合你(bash):

sed 's/[^a-zA-Z ]//g' <<<"$word"

这会利用bash中的here-string