首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Windows环境下,如何用awk替换单引号为双引号?

在Windows环境下,如何用awk替换单引号为双引号?
EN

Stack Overflow用户
提问于 2015-04-01 03:54:07
回答 1查看 1.1K关注 0票数 0

我试过gsub(),但没成功。以下是命令:

代码语言:javascript
运行
复制
awk -v a="'"  b=" \" "  "gsub(a,b,$0){print $0}" D:\re.json

或者任何人都可以告诉我Windows命令行中正确的转义字符是什么?

EN

回答 1

Stack Overflow用户

发布于 2015-04-01 08:52:29

按照建议,将脚本放入文件中。提到Windows,我们会理解上下文是Windows批处理文件(而不是混合,它在命令行脚本中有自己的问题)。用于Windows批处理文件

  • 双引号是在程序看到双引号之前被吃掉的。
  • 没有经过详细记录的避免双引号的方法。
  • 单引号以原样传递给程序(而不像Bourne shell那样用于引用)。

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

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

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

代码语言:javascript
运行
复制
gsub("'"," \" ",$0){print $0}

并把它当作

代码语言:javascript
运行
复制
awk -f foo.awk D:\re.json
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29382567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档