You need to enable JavaScript to run this app. Shell单行字符串操作:分号分隔邮箱列表转目标格式实现
优惠活动
大模型
产品
解决方案
定价
更多

Shell单行字符串操作:分号分隔邮箱列表转目标格式实现

Shell单行字符串转换实现

原生Bash单行方案(无需外部命令)

不需要分步定义中间变量,直接通过嵌套参数扩展即可一次完成全流程转换,适配Bash 4.0及以上版本:

echo "r=${${list%;}//@gmail.com;/r=}"

逻辑拆解

  • 第一步处理原变量:通过${list%;}直接移除变量末尾多余的分号,从根源上避免生成冗余的,r=后缀
  • 第二步全局替换:把处理后字符串里所有的@gmail.com;片段替换为,r=
  • 第三步拼接前缀:在最终结果前补上固定开头r=,直接输出目标格式

输入原list值kmakalas@gmail.com;kmakalas@gmail.com;kmakalas@gmail.com;时,命令直接输出r=kmakalas,r=kmakalas,r=kmakalas,和需求完全匹配。

旧版Bash兼容方案

如果环境内的Bash版本过低、不支持嵌套参数扩展,可搭配sed实现无中间变量的单行转换:

echo "r=${list//@gmail.com;/r=}" | sed 's/,r=$//'

这个方案保留了原有的替换逻辑,通过管道直接截断末尾多余的,r=片段,全程没有分步赋值中间变量的操作。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.02 08:00:16