gpt4 book ai didi

linux - 错误 TR 命令宽度 :punct: param

转载 作者:太空宇宙 更新时间:2023-11-04 09:06:14 24 4
gpt4 key购买 nike

我有以下命令:

cat original.txt | tr [:upper:] [:lower:] | tr -d [:digit:] | 
tr -d [:punct:] > preproces.txt

系统返回以下错误。

when translating, the only character classes that may appear in replaceString are 'upper' and 'lower'

问题是:

tr -d [:punct:]

这个问题的解决方案是什么?

我已经搜索过 Google 和 StackOverflow,但没有找到这个问题的答案。

微小的编辑(但对剪切和粘贴来说意义重大):在 [:punct:] 之前将 '--d' 更改为 '-d''--d' 被呈现为 '\342\200\223d'肉眼几乎看不到渲染的差异。

最佳答案

当您尝试类似以下操作时,您只会收到您所说的看到的消息:

tr '[:alpha:]' '[:digit:]'

我能够使用

tr -d '[:punct:]'

删除标点符号没有问题。例如:

$ echo "tr '[:alpha:]' [:digit:] <chkit.sh" | tr -d '[:punct:]'
tr alpha digit chkitsh
$

这是针对 x86/64 的 RHEL 5(tr 版本“tr (GNU coreutils) 5.97”)。

您可能会注意到我用引号将 tr 的参数括起来了(单引号或双引号都可以,尽管单引号通常更安全)。如果您的目录中隐藏着任何单字母文件名,您可能会遇到 shell 将方括号解释为字符类并将这些名称传递给 tr 的问题。假设你有一个文件 p:

tr [:upper:] [:lower:]

该命令现在是 tr p [:lower:]。您得到的错误略有不同,但可能是您的问题与此有关。小心使用 shell 元字符;报价是你的 friend 。

请注意,双方括号不是解决方案的一部分:

$ echo "tr -d '[[:alpha:]]' <chkit.sh" | tr -d '[[:alpha:]]'        
- '::' <.
$

关于linux - 错误 TR 命令宽度 :punct: param,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10727258/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com