gpt4 book ai didi

linux - 删除文件中模式之间所有出现的某些字符

转载 作者:太空宇宙 更新时间:2023-11-04 11:26:26 25 4
gpt4 key购买 nike

我有一个文件,其中包含从 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com