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

使用sed删除首尾指定字符 提取AWS config文件中profile字段值

解决方案

你可以直接调整sed的正则规则,通过捕获组提取目标区间的内容,一步得到结果:

1. 保留原有管道结构的调整写法

less ~/.aws/config | grep "\[profile" | sed -E 's/^\[profile ([^]]+)\]$/\1/'

2. 更精简的优化写法(无需grep管道,sed单步完成过滤+提取)

sed本身支持行匹配筛选,可以直接省掉grep步骤,执行效率更高:

sed -nE '/^\[profile / s/^\[profile ([^]]+)\]$/\1/p' ~/.aws/config

正则规则说明

  • ^ 匹配行开头,避免匹配到行内其他位置的[profile字符串
  • \[profile 匹配固定的前缀内容
  • ([^]]+) 为捕获组,匹配所有不等于]的连续字符,也就是我们需要提取的profile名称
  • \]$ 匹配行末尾的]符号
  • 替换规则\1表示直接输出第一个捕获组的内容,自动去掉前后的前缀和后缀]

原有命令的问题

你之前写的正则s/\[profile(.)//中,(.)仅匹配profile后的1个字符(也就是空格),所以只会删除行首的[profile 部分,不会处理末尾的]符号,所以才会残留多余的右括号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 07:45:06