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

问题描述 投票:0回答:1

在linux中的tr命令中使用-c选项时不会发生转换。 例如tr -c "[:digit:]" "#"tr -c [:digit:] "#"。当我输入abc###文本时,没有任何反应。 输入:qwe123ty12. 预期产量:###123##12# 目前的输出:###123##12##

tr
1个回答
1
投票

当你按Enter键时,那也是一个字符:换行符(有时写成\n)。

您的角色类包括所有非数字字符,包括换行符。这就是为什么每次你按Enter键,另一个#被添加到输出。它不是立即可见的,因为输出仅在打印换行符时刷新(对于您的选项集不会发生)或者在到达输入结束时(对于交互式输入为Ctrl + D)。

你可以通过这样做来免除换行变成#

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

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

© www.soinside.com 2019 - 2024. All rights reserved.