You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用sed提取并复制字符串中hello与(之间的指定内容?

使用sed实现文本转换需求

要完成你需要的文本转换,核心是捕获hello和(之间的函数名,再用它生成重复的调用格式。可以用sed的捕获组来实现,具体命令如下:

命令示例(扩展正则写法)

sed -E 's/hello ([a-zA-Z_]+)\(.*\);/hello \1(x) \1(y)/' input.txt

命令说明

  1. -E 参数启用扩展正则表达式,避免对捕获组括号转义,写法更简洁
  2. 正则匹配规则:
    • hello :匹配行首的固定前缀
    • ([a-zA-Z_]+):捕获函数名(支持大小写字母和下划线,可根据实际函数名规则调整)
    • \(.*\);:匹配从(开始到末尾);的所有内容(也就是需要替换掉的部分)
  3. 替换规则:
    • \1 引用之前捕获到的函数名,生成\1(x) \1(y)的格式,替换掉原来的函数调用部分

如果你的sed版本不支持-E,可以用基本正则写法(需要转义捕获组括号):

sed 's/hello \([a-zA-Z_]*\)(.*);/hello \1(x) \1(y)/' input.txt

效果验证

输入文本:

hello foo(ignore this);
hello bar(or that);
hello func(or anything really);

执行命令后输出:

hello foo(x) foo(y)
hello bar(x) bar(y)
hello func(x) func(y)

内容的提问来源于stack exchange,提问作者Lolo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 20:05:24