use*_*607 0 linux bash shell sed
我在linux bash".sh"脚本中有一个变量
$data="test_1"
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个新变量($ name),它只包含下划线之前的$ data部分,所以
$name="test"
Run Code Online (Sandbox Code Playgroud)
我想用sed这样做
name=$(echo "$dataset" | sed 's/_.*//');
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.我究竟做错了什么?
无需调用外部进程(sed).相反,您可以使用shell的参数替换,如下所示:
$ data="test_1"
$ echo "${data%%_*}"
test
Run Code Online (Sandbox Code Playgroud)
${var%%Pattern}从$varPattern的最长部分移除,该部分与后端(从右侧)匹配$var.
${var%Pattern} 用于去除最短的图案
有关参数替换的更多信息,请点击此处.
您可以将其存储在如下变量中:
$ name="${data%%_*}"
$ echo "$name"
test
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
209 次 |
| 最近记录: |