tr不影响文件命令输出

时间:2015-11-20 18:06:32

标签: file unix space trim tr

如果我跑:

$ ls -l /tmp
total 16
drwxr-xr-x   2 noaccess noaccess     177 Nov 18 09:53 hsperfdata_noaccess
drwxr-xr-x   2 root     root         117 Nov 18 09:53 hsperfdata_root

我得到了预期的结果:

]$ ls -l /tmp | tr -s '[:space:]'
total 16
drwxr-xr-x 2 noaccess noaccess 177 Nov 18 09:53 hsperfdata_noaccess
drwxr-xr-x 2 root root 117 Nov 18 09:53 hsperfdata_root

tr不会影响file输出:

$ file /tmp/dummy
/tmp/dummy:     empty file

$ file /tmp/dummy | tr -s '[:space:]'
/tmp/dummy:     empty file

(如果我使用[:blank:],则相同)

我在期待:

$ file /tmp/dummy | tr -s '[:space:]'
/tmp/dummy: empty file

我是否误用filetr?我必须awk吗?我在SunOS 5.10上使用了bash 3.2.51,并希望区分XML和gz文件。

1 个答案:

答案 0 :(得分:1)

Solaris {3.1}版本file正在生成使用制表符而不是空格的输出:

$ touch /tmp/dummy
$ file /tmp/dummy | cat -vet
/tmp/dummy:^Iempty file$
$

在这种情况下,tr -s会将单个制表符压缩为单个制表符...