【发布时间】:2018-08-29 22:13:38
【问题描述】:
什么
我想将 iana backward timezones file 转换为具有唯一键的 json 文件,但为了做到这一点,我必须确保 键成为值 和 反之亦然。
这是因为 json 文件不能有重复的键。
示例:
该文件包含大量重复链接,但在本例中,我们使用这两个:
Link America/Toronto America/Montreal
Link America/Toronto Canada/Eastern
我希望那些变成:
"美国/蒙特利尔": "美国/多伦多", “加拿大/东部”:“美国/多伦多”,
这样他们都输出多伦多。
到目前为止我所做的尝试:
目前我做的正则表达式是this:
- 搜索:
^Link[\s]*([a-zA-Z\/\-]*)[\s]*([a-zA-Z\/\-]*)$ - 替换为:
"\2" : "\1",
最后我尝试用 sed 这样做:
sed -E 's|^Link[\s]*([a-zA-Z\/\-]*)[\s]*([a-zA-Z\/\-]*)$|"\2" : "\1"|' ./backward
但由于某种原因,它一直输出整个文件而没有替换任何内容。
我做错了什么?
【问题讨论】:
-
我认为您的命令几乎是正确的。那么对于正则表达式,如何从
[\s]修改为\s?这是sed -E 's|^Link\s*([a-zA-Z\/\-]*)\s*([a-zA-Z\/\-]*)$|"\2" : "\1"|' ./backward。如果这不是您想要的,我很抱歉。