LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2107|回复: 3

tr命令的使用中的疑惑

[复制链接]
发表于 2010-6-2 21:59:25 | 显示全部楼层 |阅读模式
echo "hark,i hear an elephant" | tr  -d [:punct:] 该命令是用来删除echo命令中字符串的标点符号,结果是hark i hear an elephant。这个能理解。

但是如果先使用touch n 命令,再使用echo "hark,i hear an elephant" | tr  -d [:punct:],得到的结果是:hark, i hear a elephat。请教一下大家这是什么原因造成的?

谢谢大家伙了。
发表于 2010-6-3 11:18:14 | 显示全部楼层
這不就是 quoting 的作用了嗎?

記得CU 的shell 13問有說明過 quoting 了

如果不作 quoting,[ ... ] 在 shell 裡面被當 named expansion wildcard 來處理了。
回复 支持 反对

使用道具 举报

发表于 2010-6-4 12:29:14 | 显示全部楼层
是典型的引用问题,如果使用
echo  "hark,i hear an elephant" | tr -d ’[:punct:]‘就不会有问题了!
另外不是n文件的问题,如你不用引用,只要是字母 p、u、n、c、t 都不行!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-6-6 10:02:44 | 显示全部楼层
感谢,明白了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表