我正试图让一些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}
是固定的,而是返回整个输入字符串。
感谢任何帮助,提前谢谢!
答案 0 :(得分:1)
试试这个。
echo -e "This.Is.a.Test.V03.r501.dump" | sed -e "s/\(.*\)\.V[0-9]*.*/\1/"
答案 1 :(得分:1)
\w
匹配字母数字,您希望仅捕获字母,因此请将\w
替换为[:alpha:]
。此外,{2}
需要替换为\{2\}
。以下适用于GNU sed
echo -e "This.Is.a.Test.V03.r501.dump" |
sed "s/^\([[:alpha:].]\+\)\.V[0-9]\{2\}.*$/\1/g"
This.Is.a.Test
答案 2 :(得分:1)
sed
sed -r 's/^(([^.]+.){3})([^.]+).*/\1\3/'
答案 3 :(得分:0)
你在找这个吗?
一种方法是使用awk
$ echo "This.Is.a.Test.V03.r501.dump" | awk -F'.' 'BEGIN{OFS=FS}{NF=4}1'
This.Is.a.Test