簡體   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