Windows下tr命令重定向报错:无法识别>与<操作符
解决
tr命令重定向报错的问题 你遇到的核心问题是shell没有正确识别重定向符号(</>),反而把它们当成了tr命令的额外参数,再加上第二个命令误用了tr不支持的选项,才导致报错。下面是具体的解决办法:
正确的命令写法
方法1:通过管道传递输入
cat file.txt | tr -d '{"' > output.txt
方法2:直接用输入重定向
tr -d '{"' < input.txt > output.txt
为什么之前的命令会报错?
- 引号解析混乱:你原来的
tr -d "{\""中,混合使用双引号和转义符的写法让shell解析出现了偏差——重定向符号>没有被shell识别为重定向操作,反而被当成tr的额外参数传入,触发了extra operand错误。改用单引号包裹要删除的字符集合{",可以避免shell解析里面的特殊字符,让tr正确接收参数,同时shell能正常处理重定向。 - 误用无效选项:第二个命令里的
-f是错误的,tr命令没有这个选项,你需要的是-d(删除指定字符)选项。 - 输入方式错误:
tr不支持直接传入文件名作为参数,必须通过管道或者<输入重定向来读取文件内容,之前的写法里<被错误当成tr的参数,也是因为引号解析问题导致shell没识别出它是重定向符号。
内容的提问来源于stack exchange,提问作者Sean
相关产品推荐
相关产品推荐

