在tr命令中使用-c选项时无结果

时间:2019-04-29 18:19:28

标签: tr

在Linux中的tr命令中使用-c选项时,不会发生翻译。
例如tr -c "[:digit:]" "#"tr -c [:digit:] "#"。当我输入abc的{​​{1}}之类的文本时,什么也没发生。
输入:###
预期输出:qwe123ty12.
当前输出:###123##12#

1 个答案:

答案 0 :(得分:1)

当您按下 Enter 时,这也是一个字符:换行符(有时写为\n)。

您的字符类包括所有非数字字符,包括换行符。这就是为什么每次您按下Enter键时,都会将另一个#添加到输出中。它不是立即可见的,因为仅在打印换行符时才清除输出(这在您的选项集中永远不会发生),或者在达到输入结尾时( Ctrl + D < / kbd>进行交互式输入)。

您可以免除换行符变成#的作用

tr -c '[:digit:]\n' '#'

这会将\n添加到要保留的字符集中。