将类似于正则表达式的符号扩展为多个文字 [英] Expand regex-like notation to multiple literals

查看:82
本文介绍了将类似于正则表达式的符号扩展为多个文字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有以下节点的YAML文件:

I've got a YAML file with nodes such as:


group:
  name: test
  permissions:
  - i.can.(create|delete)

我需要用i.can.createi.can.delete(有很多实例)替换i.can.(create|delete).

I need to replace i.can.(create|delete) with i.can.create and i.can.delete (there are many instances).

我如何轻松地做到这一点?

How can I do this easily?

推荐答案

该想法是用somethinga somethingb等行替换所有something(a|b|c|...).

The idea is to replace all something(a|b|c|...) with lines somethinga somethingb etc.

awk似乎比sed更适合这里:

awk seems to be suited here more than sed:

awk 'BEGIN { FS="[(|)]" ; OFS=""} /\(.*\)/ { for (field=2;field<NF;field++) {print $1,$field ;} ; next ; }1'

这将满足您的要求

这篇关于将类似于正则表达式的符号扩展为多个文字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆