Windows tr输出文件
我正在尝试运行以下命令:Windows tr输出文件,windows,cmd,tr,Windows,Cmd,Tr,我正在尝试运行以下命令: cat file.txt | tr -d "{\"" > output.txt 但它不断出错: tr: extra operand '>' 似乎它没有正确地解释胡萝卜。 当我尝试以下方法时,同样的情况也会发生: tr -f "{\"" < input.txt > output.txt tr: extra operand '<' tr-f“{\”output.txt tr:extra operant'看起来cmd与“{\”混淆了。首先,
cat file.txt | tr -d "{\"" > output.txt
但它不断出错:
tr: extra operand '>'
似乎它没有正确地解释胡萝卜。
当我尝试以下方法时,同样的情况也会发生:
tr -f "{\"" < input.txt > output.txt
tr: extra operand '<'
tr-f“{\”output.txt
tr:extra operant'看起来cmd
与“{\”
混淆了。首先,反斜杠在转义引号时工作正常。但是cmd使用两个连续引号表示转义引号。然后将行的其余部分作为同一句话。使用printf
可以看到效果:
C:\>printf "%s\n" "x\"" > nul
x"
>
nul
因此,printf
将每个单词单独处理,但cmd
将它们视为带引号字符串的所有部分,因此不会将>nul
解析为普通单词以外的任何单词
解决方案?在字符串中使用两个连续引号:
cat file.txt | tr -d "{""" > output.txt
看起来cmd
与“{\”“
混淆了。首先,反斜杠在转义引号时工作正常。但是cmd使用两个连续的引号表示转义引号。然后将行的其余部分作为同一句话。使用printf
可以看到效果:
C:\>printf "%s\n" "x\"" > nul
x"
>
nul
因此,printf
将每个单词单独处理,但cmd
将它们视为带引号字符串的所有部分,因此不会将>nul
解析为普通单词以外的任何单词
解决方案?在字符串中使用两个连续引号:
cat file.txt | tr -d "{""" > output.txt
你说的是“windows”,你在使用cygwin吗?你展示的语法是正确的(在ubuntu linux上测试过),所以不管是什么问题,都是shellNo的直接命令提示符,具体使用GNU32Toolsbest。你正在运行cmd.exe
?这基本上是DOS,可能被“X\”
(\“
部分)搞混了。请尝试仅删除\”
(是的,我们必须分别修复删除“
)。祝您好运。^
是cmd
中的转义字符,因此请尝试cat file.txtoutput.txt
或甚至cat file.txt{tr d^^”{output.txt
(管道可能需要双重转义)…你说的是“windows”,你使用的是cygwin吗?你展示的语法是正确的(在ubuntu linux上测试过),所以不管是什么问题,都是shellNo的直接命令提示符,具体使用的是GNU32Toolsbest。你运行的是cmd.exe
?这基本上是DOS,可能会被“X\”
(The\“
部分)。尝试仅删除\”
(是的,我们必须单独修复删除”
)。祝您好运。^
是cmd
中的转义字符,所以请尝试cat file.txt
输出.txt,甚至cat file.txt ^ tr-d^ ^输出.txt
(管道可能导致需要双重转义).cmd
不会转义”
作为一个转义“
”,cmd
中的转义字符是^
,因此^
转义。尽管至少有一个(外部)命令接受“
:…@aschipflcat file.txt | tr-d”{^“>output.txt
不工作。tr
查看实际的^
字符。另一方面,使用”
,tr
查看单个”
。^
不会在之间处理
到cmd
,所以你需要转义第一个引号,比如^“{”
,然后它应该可以工作,我想…@aschipfl是的,^“{”
可以工作!但是它似乎也可以工作,并且短了1个字符。在我的回答中,我有一个额外的”
在结尾,实际上这似乎是不必要的。cmd
不会转义“
作为一个转义的”
,cmd
中的转义字符是^
,因此^“
转义。尽管至少有一个(外部)命令接受”“
:…@aschipflcat file.txt | tr-d”{^“>output.txt
不工作。tr
查看实际的^
字符。另一方面,使用”
,tr
查看单个”
。^
不会在之间处理
到cmd
,所以你需要转义第一个引号,比如^“{”
,然后它应该可以工作,我想…@aschipfl是的,^“{”
可以工作!但是它似乎也可以工作,并且短了1个字符。在我的回答中,我在最后有一个额外的“
,这在实践中似乎是不必要的。