gpt4 book ai didi

regex - sed 仅在两个已知字符串之间替换字符

转载 作者:行者123 更新时间:2023-12-05 01:32:09 25 4
gpt4 key购买 nike

是否可以仅替换两个已知字符串之间的字符?我有许多格式的文件
title.header.index.subtitle.goes.here.footer
我可以选择“subtitle.goes.here”,在索引(我需​​要反向引用)和页脚(这是常量)之间进行模式匹配,但是我想用下划线替换句点/点字符,以给我吗
title.header.index.subtitle_goes_here.footer
所以从输入如
title.header.01.the.first.subtitle.is.here.footer
我想结束
title.header.01.the_first_subtitle_is_here.footer
到目前为止我所拥有的是无用的,但是一个开始:sed -r 's/([0-9][0-9]\.)([a-z]*\.*)*footer/\1footer/g'
但这是在手动将其重新添加之前删除整个副标题和页脚,我敢肯定还有很多其他缺陷。任何帮助将非常感激。

最佳答案

这可能对你有用:

echo "title.header.01.the.first.subtitle.is.here.footer" |
sed 's/\./_/4g;s/.\(footer\)/.\1/'
title.header.01.the_first_subtitle_is_here.footer

一个丑陋的选择:
sed 'h;s/\([0-9][0-9]\.\).*\(\.footer\)/\1\n\2/;x;s/.*[0-9][0-9]\.\(.*\).footer/\1/;s/\./_/g;x;G;s/\(\n\)\(.*\)\1\(.*\)/\3\2/' file

关于regex - sed 仅在两个已知字符串之间替换字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9203826/

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