linux bash sed-command with variable

时间:2016-06-01 10:46:19

标签: linux bash shell sed

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

$data="test_1"

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

$name="test"

我想用sed

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

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

1 个答案:

答案 0 :(得分:5)

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

$ data="test_1"

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

${var%%Pattern}$var中移除与$var的后端(从右侧)匹配的Pattern的最长部分。

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

可以找到有关参数替换的更多信息here

您可以将其存储在如下变量中:

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

$ echo "$name"
test