gpt4 book ai didi

linux - tr -ct 有什么作用?

转载 作者:太空宇宙 更新时间:2023-11-04 05:31:03 26 4
gpt4 key购买 nike

我对 tr 选项的执行顺序感到困惑。

例如有这样一个命令:

echo 123 | tr -ct '\n' '0'

这是如何执行的?是先执行-c,还是先执行-t

我也对这个命令的结果感到困惑。我以为先执行-c,结果是123,然后再执行-t,结果是023,最后是023\n。但这是错误的,正确答案是123\n,我不知道为什么,有人可以告诉我吗?

最佳答案

有趣的是,tr -ct 似乎补充了第一组,然后将其截断为第二组的长度。这可能不是您应该依赖的行为,因为 -t 表示它“首先将 SET1 截断为 SET2 的长度”。

无论如何,明显的效果是首先应用 -c,将第一个集合 \n 转换为包含除 \n 之外的所有字符的集合,并按升序排序(因此第一个字符是 NUL 字符 \0)。然后,应用 -t,导致该集合被截断为仅 \0。因此,tr 会将 NUL 字符转换为 0 字符。

举个例子,考虑一下:

$ tr --version
tr (GNU coreutils) 8.13
$ echo -e 'X\0X'
XX
$ echo -e 'X\0X' | tr -ct '\n' '0'
X0X

关于linux - tr -ct 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18418737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com