您好我是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视为文件而不是我希望它处理的字符串。
我该如何解决这个问题?
答案 0 :(得分:2)
sed
将参数视为输入文件。
请尝试以下方式:
echo "$word" | sed -n 's/[^a-z]//ig'
答案 1 :(得分:1)
这可能适合你(bash):
sed 's/[^a-zA-Z ]//g' <<<"$word"
这会利用bash中的here-string
。