免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2750 | 回复: 5
打印 上一主题 下一主题

tr命令的问题,从一个命令行得到不同的结果。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-07-26 22:02 |只看该作者 |倒序浏览
这个问题是我从Rad Hat Linux用户基础中看到的,觉得很好奇,在网上没有搜索到相关的信息,所以就拿出来到这里请教下。
这个问题是这样的:
ubuntu@ubuntu-desktop:~$echo 'hark, I hear an elephant!' | tr -d [:punct:]
hark I hear an elephant
ubuntu@ubuntu-desktop:~$ touch n
ubuntu@ubuntu-desktop:~$ echo 'hark, I hear an elephant!' | tr -d [:punct:]
hark, I hear a elephat!
ubuntu@ubuntu-desktop:~$ rm n
ubuntu@ubuntu-desktop:~$ echo 'hark, I hear an elephant!' | tr -d [:punct:]
hark I hear an elephant
为什么会出现这样的情况?
这个叫n的文件为什么会起到这样的作用呢?同样的命令行,为什么会得到不同的结果呢?

论坛徽章:
0
2 [报告]
发表于 2011-07-26 22:18 |只看该作者
回复 1# jhinux


    我觉得可能是你-d 选项的值没有加单引号的原因,这样就会照成在替换过程,把n当做一个文件,同理你试试touch “punct”中的任意其他字符试试,你加单引号就没有这个问题了
  1. [root@wan sh]# echo 'hark, I hear an elephant!' | tr -d [:punct:]
  2. hark I hear an elephant
  3. [root@wan sh]# touch c
  4. [root@wan sh]# echo 'hark, I hear an elephant!' | tr -d [:punct:]
  5. hark, I hear an elephant!
  6. [root@wan sh]# echo 'hark, I hear an elephant!' | tr -d '[:punct:]'
  7. hark I hear an elephant
复制代码

论坛徽章:
0
3 [报告]
发表于 2011-07-26 22:33 |只看该作者
回复  jhinux


    我觉得可能是你-d 选项的值没有加单引号的原因,这样就会照成在替换过程,把n当做一 ...
lionfun 发表于 2011-07-26 22:18




    就是由这个原因引起的……
    其实加双引号也是可以的……

论坛徽章:
0
4 [报告]
发表于 2011-07-26 22:44 |只看该作者
回复 3# xiaopan3322

当然可以的!但是我比较怕得就是soft quote 的元字符替换…… 例如:
  1. [root@wan sh]# n=Y
  2. [root@wan sh]# echo 'Yes $n' | tr -d "$n"
  3. es $n
  4. [root@wan sh]# echo 'Yes $n' | tr -d '$n'
  5. Yes
复制代码

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
5 [报告]
发表于 2011-07-26 22:50 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
6 [报告]
发表于 2011-07-27 20:46 |只看该作者
回复 4# lionfun


    谢谢指点,呵呵,这个也算是bash的命令行扩展带来的副作用吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP