首页 > 解决方案 > 如何通过下划线拆分字符串并将元素提取为bash中的变量?

问题描述

假设我有一个字符串,例如s=DNA128533_mutect2_filtered.vcf.gz. 我怎样才能将其提取DNA128533为 ID 变量。

我试过了

id=(cut -d_ -f1 <<< ${s}
echo $id

它似乎不起作用。一些建议?谢谢

标签: bash

解决方案


无需花费子外壳调用cut -d'_' -f1和使用 bashism <<< "$s"

POSIX shell 语法内置了通过变量扩展剥离尾随元素的规定,无需分叉昂贵的子 shell 或使用非标准 Bash 特定的<<<"here string".

#!/usr/bin/env sh

s=DNA128533_mutect2_filtered.vcf.gz
id=${s%%_*}
echo "$id"

推荐阅读