繁体   English   中英

在Windows下如何通过awk将单引号替换为双引号?

[英]How to replace single quote to double quote by awk when under Windows?

我尝试了gsub(),但是没有用。 这是命令:

awk -v a="'"  b=" \" "  "gsub(a,b,$0){print $0}" D:\re.json

还是有人可以告诉我Windows命令行中正确的转义字符是什么?

按照建议,将脚本放入文件中。 对于Windows,我们会将上下文理解为Windows批处理文件(而不是说mingw,它在命令行脚本方面有其自身的问题)。 对于Windows批处理文件

  • 在程序看到双引号之前先将其删除
  • 没有充分记录的方法来转义双引号
  • 单引号按原样传递给程序(而不是像在Bourne shell中那样用于引号)。

以下是讨论这些问题的一些链接:

因此,规则与该构造所需的awk完全不同。 顺便说一句,最后一个链接提供了一些线索,您可以使用这些线索来设计解决方法(以提高可读性为代价)。 在批处理脚本转义双引号中也对此进行了讨论。

作为一个单独的文件,脚本也将更具可读性,例如,调用该foo.awk

gsub("'"," \" ",$0){print $0}

并用作

awk -f foo.awk D:\re.json

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM