这个命令在我的笔记本电脑上无法正常工作,因为它不会删除标点字符。
echo "asdaftafiatfiat!!!~~~$$$$tt" | tr -d [:punct:]
但tr -d [:punct:]
从字符串中删除t
。
答案 0 :(得分:0)
这是quoting issues,您的shell正在解释$
和!
,因为您使用的是双引号。您需要使用单引号来避免使用bash
解释任何字符:
$ echo 'asdaftafiatfiat!!!~~~$$$$tt' | tr -d [:punct:]
asdaftafiatfiattt
答案 1 :(得分:0)
我认为你的tr不会识别像[:punct:]这样的类,但尝试引用它:
... | tr -d '[:punct:]'
如果您发现bash历史记录扩展有困难,可以将其禁用:
shopt -u -o histexpand
echo 'asdaftafiatfiat!!!~~~$$$$tt' | tr -d '[:punct:]'