怎么sed命令实现从行末匹配第二个字符并替换成另一个字符

比如我有一串字符如下:linux-libc-headers-3.18.31-r0我想要把这串字符改为linux-libc-headers,3.18.31-r0.也就是从后... 比如我有一串字符如下:
linux-libc-headers-3.18.31-r0
我想要把这串字符改为linux-libc-headers,3.18.31-r0. 也就是从后面数的第二个“-”改为“,”。是要再脚本里边处理,不用sed能实现也可以。
当然,原始的字符串也可能是:
glibc-2.24-r0
gcc-cross-initial-arm-4.9.1-r0

求高人解答,查了好久没查到答案……
从行首匹配的可以给大家分享一下:
sed -i 's/-/,/2' test.txt -i是会修改原始文件, 2是匹配第二个
展开
 我来答
albumin
2018-07-05 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2328万
展开全部
echo linux-libc-headers-3.18.31-r0|sed 's/-\([^-]*-[^-]*\)$/,\1/'
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式