Windows tr 输出文件

Windows tr output file

我正在尝试运行以下命令:

cat file.txt | tr -d "{\"" > output.txt

但它一直出错:

tr: extra operand '>'

它似乎没有正确解释胡萝卜。 当我尝试这个时也会发生同样的事情:

tr -f "{\"" < input.txt > output.txt
tr: extra operand '<'

看起来 cmd"{\"" 混淆了。首先,反斜杠在转义引号时可以正常工作。但是 cmd 将两个连续的引号表示为转义引号。然后该行的其余部分被视为同一个句子。使用printf:

可以看到效果
C:\>printf "%s\n" "x\"" > nul
x"
>
nul

因此,printf 单独获取每个单词,但 cmd 将它们视为带引号的字符串的所有部分,因此不会将 > nul 解析为正常单词以外的任何内容.

解决方案?在字符串中使用两个连续的引号:

cat file.txt | tr -d "{""" > output.txt