我在linux bash“.sh”脚本中有一个变量
$data="test_1"
现在我想创建一个新变量($ name),它只包含下划线之前的$ data部分,所以
$name="test"
我想用sed
这样做name=$(echo "$dataset" | sed 's/_.*//');
但这似乎不起作用。我做错了什么?
答案 0 :(得分:5)
无需调用外部进程(sed
)。相反,您可以使用shell的参数替换:
$ data="test_1"
$ echo "${data%%_*}"
test
${var%%Pattern}
从$var
中移除与$var
的后端(从右侧)匹配的Pattern的最长部分。
${var%Pattern}
用于删除最短格式
可以找到有关参数替换的更多信息here。
您可以将其存储在如下变量中:
$ name="${data%%_*}"
$ echo "$name"
test