我有一个文件,其中包含从 PHP 代码到 TWIG 的错误翻译,我只需要删除第一次和最后一次出现的括号 () 以及任何出现在 {% 和 %} 标记之间的 $
例如如果文件中有:
{% if($var.has($something)) %}
This symbols ($($)$) won't be deleted becoase they aren't between {% and %}
我需要将其转化为:
{% if var.has( something) %}
This symbols ($($)$) won't be deleted becoase they aren't between {% and %}
关于如何做到这一点有什么想法吗?
最佳答案
当涉及语法时,我喜欢使用 vim
来完成该任务。在你的情况下:
vim -c '%g/{%/norm/(^[ma%x`ar ' 文件
解释: - vim -c - 运行命令
- %g - 每行
- /{% - 包含模式 {%
- norm - 进入 vim 正常模式
- /( - 转到 (
- ^{ - ESC(按 CTRL+V< FOLLOWED BY ESC)
- ma - 将当前位置标记为“a”
- % - 去匹配关闭 )
- x - 删除它
- `a - 返回 (
- r - 将其替换为空格
关于linux - 删除文件中模式之间所有出现的某些字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14489758/