在Linux中的tr命令中使用-c选项时,不会发生翻译。
例如tr -c "[:digit:]" "#"
或tr -c [:digit:] "#"
。当我输入abc
的{{1}}之类的文本时,什么也没发生。
输入:###
预期输出:qwe123ty12.
当前输出:###123##12#
答案 0 :(得分:1)
当您按下 Enter 时,这也是一个字符:换行符(有时写为\n
)。
您的字符类包括所有非数字字符,包括换行符。这就是为什么每次您按下Enter键时,都会将另一个#
添加到输出中。它不是立即可见的,因为仅在打印换行符时才清除输出(这在您的选项集中永远不会发生),或者在达到输入结尾时( Ctrl + D < / kbd>进行交互式输入)。
您可以免除换行符变成#
的作用
tr -c '[:digit:]\n' '#'
这会将\n
添加到要保留的字符集中。