我试图解析文本文件以获取当前版本的软件。我正在寻找的字符串看起来与此类似:
" Foo bar(版本:10.2)gak"
Awk支持使用多个分隔符,我认为这是一个很好的可读解决方案。出于某种原因,这不起作用:
$ echo "Foo bar (Version: 10.2)gak" | awk -F')| ' '/Version/ {print $4}'
10.2)gak
有没有人碰巧知道正确的语法是什么?根据我在手册页中看到的内容,这应该可行。一定是在傻傻丢失。
答案 0 :(得分:3)
您可以使用分隔符的字符类:
echo "Foo bar (Version: 10.2)gak" | /usr/bin/awk -F '[(): ]+' '/Version/{print $4}'
10.2
正则表达式[(): ]+
正在使用一个字符类,将分隔符设置为(
或)
或:
或空格字符中的一个或多个。
答案 1 :(得分:0)