gpt4 book ai didi

linux - 预置到正则表达式匹配

转载 作者:太空宇宙 更新时间:2023-11-04 11:42:13 25 4
gpt4 key购买 nike

我在 bash 脚本中得到一个需要替换的变量。该行中唯一不变的是它将以“_(*x)xxxp.mov”结尾。其中 x 是数字,长度可以是 3 或 4。例如,我知道如何替换值,但前提是它是常量:

echo 'whiteout-tlr1_1080p.mov' | sed 's/_[0-9]*[0-9][0-9][0-9]p.mov/_h1080p.mov/g'

如何将正则表达式匹配转移到替换行?

编辑:

好的,我刚刚了解到 grep 只能打印匹配项,做这样的事情会更好吗?

urltrail=$(echo $@ | grep -o [0-9]*[0-9][0-9][0-9]p.mov)
newurl=$(sed 's/$urltrail/h$urltrail/g')

嗯,尝试了上面的方法,但还是挂了。

最佳答案

Back Reference

sed 's/_\([0-9]*[0-9][0-9][0-9]\)p.mov/_h\1p.mov/g'

后向引用 \n,其中 n 是单个数字,匹配先前由第 n 个带括号的子表达式匹配的子字符串正则表达式。

关于linux - 预置到正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1354109/

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