小编Chr*_*ris的帖子

tr 使用范围的奇怪行为

我有一台特定的服务器在使用 tr 时表现出奇怪的行为。这是来自工作服务器的示例:

-bash-3.2$ echo "abcdefghijklmnopqrstuvwxyz1234567890"|tr -d [a-z]
1234567890
-bash-3.2$
Run Code Online (Sandbox Code Playgroud)

这对我来说很有意义。

然而,这是来自“特殊”服务器:

[root@host~]# echo "abcdefghijklmnopqrstuvwxyz1234567890"|tr -d [a-z]
abcdefghijklmnpqrstuvwxyz1234567890
Run Code Online (Sandbox Code Playgroud)

如您所见,删除所有小写字符失败。但是,它已经删除了字母“o”

有趣的部分是以下两个示例,它们对我来说毫无意义:

[root@host~]# echo "abcdefghijklmnopqrstuvwxyz1234567890"|tr -d [a-n]
opqrstuvwxyz1234567890
[root@host~]# echo "abcdefghijklmnopqrstuvwxyz1234567890"|tr -d [a-o]
abcdefghijklmnpqrstuvwxyz1234567890
[root@host~]#
Run Code Online (Sandbox Code Playgroud)

(同样,'o' 在最后一个例子中被删除了)

有谁知道这里发生了什么?我无法在我正在使用的任何其他 linux 机器上复制。

command-line shell wildcards tr

11
推荐指数
2
解决办法
1709
查看次数

标签 统计

command-line ×1

shell ×1

tr ×1

wildcards ×1