📅  最后修改于: 2023-12-03 15:06:34.856000             🧑  作者: Mango
在Shell-Bash中,从一个字符串中提取数字是常见的需求。本文将介绍如何使用Shell-Bash从字符串中提取数字。
使用sed命令是最常用的从字符串中提取数字的方法。假设我们有一个字符串linux-2019-08-15.tar.gz
,我们想要提取出其中的数字2019
、08
和15
,我们可以使用以下命令:
echo "linux-2019-08-15.tar.gz" | sed 's/[^0-9]*//g'
这个命令的含义是,使用sed命令将所有非数字的字符替换为空,输出结果为20190815
。
如果我们想要提取出其中的年份2019
,可以使用如下命令:
echo "linux-2019-08-15.tar.gz" | sed 's/[^0-9]*\([0-9][0-9][0-9][0-9]\)[^0-9]*/\1/g'
这个命令的含义是,使用sed命令将所有非数字的字符和它们之前和之后的数字替换为空,只留下四个数字的年份,输出结果为2019
。
使用grep命令也可以从字符串中提取数字。假设我们仍有一个字符串linux-2019-08-15.tar.gz
,我们想要提取出其中的年份2019
,可以使用如下命令:
echo "linux-2019-08-15.tar.gz" | grep -Eo '[0-9]{4}'
这个命令的含义是,使用grep命令匹配出所有符合四位数字格式的字符串,输出结果为2019
。
使用awk命令也可以从字符串中提取数字。同样假设我们仍有一个字符串linux-2019-08-15.tar.gz
,我们想要提取出其中的年份2019
,可以使用如下命令:
echo "linux-2019-08-15.tar.gz" | awk -F'-' '{print $2}'
这个命令的含义是,使用awk命令以-
为分隔符将字符串分成几个字段,其中第二个字段即为年份,输出结果为2019
。
以上是三种常用的从字符串中提取数字的方法,希望对你有所帮助。