在linux中的tr命令中使用-c选项时不会发生转换。
例如tr -c "[:digit:]" "#"
或tr -c [:digit:] "#"
。当我输入abc
的###
文本时,没有任何反应。
输入:qwe123ty12.
预期产量:###123##12#
目前的输出:###123##12##
当你按Enter键时,那也是一个字符:换行符(有时写成\n
)。
您的角色类包括所有非数字字符,包括换行符。这就是为什么每次你按Enter键,另一个#
被添加到输出。它不是立即可见的,因为输出仅在打印换行符时刷新(对于您的选项集不会发生)或者在到达输入结束时(对于交互式输入为Ctrl + D)。
你可以通过这样做来免除换行变成#
tr -c '[:digit:]\n' '#'
这会将\n
添加到要保留的字符集中。