我试图让一些 sed 命令工作但没有成功......
echo -e "This.Is.a.Test.V03.r501.dump" | sed "s/^\(\w+(\.\w+)*\)\.V[0-9]{2}.*$/\1/g"
基本上,我想在修复时匹配并返回This.Is.a.Test
,\.V[0-9]{2}
但它返回整个输入字符串。
任何帮助表示赞赏,在此先感谢!
\w
匹配字母数字,您希望仅捕获字母,因此替换\w
为[:alpha:]
. 另外{2}
需要替换为\{2\}
. 以下适用于 GNUsed
echo -e "This.Is.a.Test.V03.r501.dump" |
sed "s/^\([[:alpha:].]\+\)\.V[0-9]\{2\}.*$/\1/g"
This.Is.a.Test
尝试这个。
echo -e "This.Is.a.Test.V03.r501.dump" | sed -e "s/\(.*\)\.V[0-9]*.*/\1/"
另一种方式sed
sed -r 's/^(([^.]+.){3})([^.]+).*/\1\3/'
你在找这个吗?
一种方法是使用 awk
$ echo "This.Is.a.Test.V03.r501.dump" | awk -F'.' 'BEGIN{OFS=FS}{NF=4}1'
This.Is.a.Test