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