在 tr 命令中使用 -c 选项时没有结果
No results when using -c option in tr command
在 linux.
中的 tr 命令中使用 -c 选项时不会发生转换
例如 tr -c "[:digit:]" "#"
或 tr -c [:digit:] "#"
。当我输入类似 abc
的文本而不是 ###
时,没有任何反应。
输入:qwe123ty12.
预期输出:###123##12#
当前输出:###123##12##
当您按 Enter 时,这也是一个字符:换行符(有时写为 \n
)。
您的字符 class 包括所有非数字字符,包括换行符。这就是为什么每次您按下 Enter 时,都会在输出中添加另一个 #
。它不会立即可见,因为输出仅在打印换行符时(您的选项集永远不会发生)或到达输入末尾(即 Ctrl+D 用于交互式输入)。
您可以通过
免除换行符变成#
tr -c '[:digit:]\n' '#'
这会将 \n
添加到要单独保留的字符集中。
在 linux.
中的 tr 命令中使用 -c 选项时不会发生转换
例如 tr -c "[:digit:]" "#"
或 tr -c [:digit:] "#"
。当我输入类似 abc
的文本而不是 ###
时,没有任何反应。
输入:qwe123ty12.
预期输出:###123##12#
当前输出:###123##12##
当您按 Enter 时,这也是一个字符:换行符(有时写为 \n
)。
您的字符 class 包括所有非数字字符,包括换行符。这就是为什么每次您按下 Enter 时,都会在输出中添加另一个 #
。它不会立即可见,因为输出仅在打印换行符时(您的选项集永远不会发生)或到达输入末尾(即 Ctrl+D 用于交互式输入)。
您可以通过
免除换行符变成#
tr -c '[:digit:]\n' '#'
这会将 \n
添加到要单独保留的字符集中。