gpt4 book ai didi

regex - sed 替换为部分字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:12:30 24 4
gpt4 key购买 nike

echo "/c/test/my0.txt" | sed 's/.\{5\}$/.\{4\}$/g'

是否可以在 sed 中用该行的最后 4 个字符替换该行的最后 5 个字符?

我的文件名可以是任意长度,但结尾总是可以预测的,即我要替换的部分总是从结尾开始的 5 个字符

最佳答案

分别匹配即可,省略不需要的字符:

echo "/c/test/my0.txt" | sed 's/.\(....\)$/\1/'

您似乎追求的另一种方法:您可以显式定位文件名后缀之前的最后一个字符;即使后缀有更多或更少的字符(.mpeg.c.txt~ 等),这也能正常工作

echo "/c/test/my0.txt~" | sed 's/.\.\([^.][^.]*\)$/.\1/'

使用 sed -E(推荐),您可以使用标准的“现代”正则表达式并将最后一个写为:

echo "/c/test/my0.txt~" | sed -E 's/.\.([^.]+)$/.\1/'

关于regex - sed 替换为部分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35176330/

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