bash - 如何通过下划线拆分字符串并将元素提取为bash中的变量?
问题描述
假设我有一个字符串,例如s=DNA128533_mutect2_filtered.vcf.gz
. 我怎样才能将其提取DNA128533
为 ID 变量。
我试过了
id=(cut -d_ -f1 <<< ${s}
echo $id
它似乎不起作用。一些建议?谢谢
解决方案
无需花费子外壳调用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"
推荐阅读
- sql - 使用子查询更新表
- javascript - 在单个页面上预览多个图像
- java - 在生产环境中运行 OpenJDK 11.0.1
- javascript - 如何以编程方式更改 amStockChart 的缩放级别?
- android - 带有按钮的 Firebase ArrayList 更新 firebase 数据
- android - 将 firebase_messaging 插件添加到 Flutter 项目
- javascript - 一个 mTurk HIT 中有多个问题。创建下一个按钮
- python - 使用 Python 以简单的方式构造欧拉方法
- python - 如何将 Django 模型计算属性用于 Django 管理器模型?
- javascript - 如何在需要时显示弹出错误/成功消息?