繁体   English   中英

带有变量的Linux bash sed命令

[英]linux bash sed-command with variable

我在linux bash“ .sh”脚本中有一个变量

$data="test_1"

现在我想创建一个新变量($ name),该变量只包含下划线前$ data的一部分,所以

$name="test"

我想到用sed做到这一点

name=$(echo "$dataset" | sed 's/_.*//');

但这似乎不起作用。 我究竟做错了什么?

无需调用外部进程( sed )。 相反,您可以像这样使用shell的参数替换:

$ data="test_1"

$ echo "${data%%_*}"
test

${var%%Pattern}从删除$var是后端(右)图形匹配最长的部分$var

${var%Pattern}用于删除最短模式

有关参数替换的更多信息,请参见此处

您可以将其存储在这样的变量中:

$ name="${data%%_*}"

$ echo "$name"
test

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM