How to parse the correct version number?
下面的命令将返回相应的字符串
1 2 | $ docker-compose exec postgres postgres --version postgres (PostgreSQL) 10.4 (Debian 10.4-2.pgdg90+1) |
我正在尝试获取PostgreSQL版本,但是当我尝试时,debian版本和其他数字包括如下
1 2 | $ pg_version=$(docker-compose exec postgres postgres --version | sed 's/[^0-9.]//g') 10.410.42.901 |
我想知道如何只买
awk -v RS="" '/^[0-9.]+$/{print; exit}' grep -oE '[.0-9]+' | head -1 tr ' ' '
' | grep -oE -m 1 '[.0-9]+'sed 's|^[^0-9.]*\([0-9.]\+\).*|\1|'
修改
1 | sed -E 's/.*PostgreSQL[^0-9.]+([0-9.]*).*/\1/' |
您可以将
1 | $ grep -oP"PostgreSQL.\s\K.+?(?=\s)" |
例如:
1 2 | $ echo"postgres (PostgreSQL) 10.4 (Debian 10.4-2.pgdg90+1)" | grep -oP"SQL.\s\K.+?(?=\s)" 10.4 |