我在 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