嗨,我是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视为一个文件,而不是我希望它处理的字符串。
我该怎么解决这个问题?
sed
将参数视为输入文件。
请尝试以下操作:
echo "$word" | sed -n 's/[^a-z]//ig'
这可能对你有用(bash):
sed 's/[^a-zA-Z ]//g' <<<"$word"
这利用了bash中的here-string
。