bash - 提取以数字开头的变量部分

标签 bash

我在 bash 脚本中有以下变量“VAR1”:

VAR1 = "/path/to/file/190909_AAA_ZZZ/"

我现在想创建一个只包含“190909”部分的变量 (VAR2)。

我想通过提取以任意 6 位数字 (190909) 开始直到下一个“_”的部分来做到这一点

如何实现?

VAR2 = ${grep ... $VAR1} ???

最佳答案

请尝试以下操作:

VAR1="/path/to/file/190909_AAA_ZZZ/"
[[ $VAR1 =~ ([0-9]{6})_ ]] && VAR2=${BASH_REMATCH[1]}
echo "$VAR2"

输出:

190909

请注意,一般变量名不建议使用大写字母。

关于bash - 提取以数字开头的变量部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57867638/

相关文章:

python - 如何找到未列出或丢失的号码?

linux - 使用带有嵌入空格的参数(例如文件名)在 bash 脚本中调用命令

bash - 使用 mkfifo 和传输流,这可能吗?

bash - 如何编写文本文件,然后在同一个 Bash 脚本中读取该文本文件?

bash - 使用 sendmail 强制内容类型

linux - 用于检测系统上的包的 shell 脚本错误

bash - 当没有 mvn -s 选项时,Maven 备用 settings.xml

linux - bash 脚本来创建和 cd 到名称中有空格的目录

python - 断言错误或snakemake : error: argument --snakefile/-s: expected one argument when working with Snakemake pipeline

mysql - BASH 和 MYSQL - 运行 bash/sh 脚本期间记录 mysql 问题