簡體   English   中英

使用bash替換變量中的字符串

[英]Replace String in variable using bash

我想替換變量中的字符串,例如

Test=Today, 12:34

我想用我之前聲明的日期變量替換變量 Test 中的“今天”。

我嘗試使用“-sed”命令,

sed -i -e "s/Today/$Date" '$Test'

但它只會打印出錯誤並且文件“$Test”未知。 那么使用 sed 只能使用文本文件嗎?

親切的問候, X3nion

首先,這是一個語法錯誤。

$: Test=Today, 12:34
bash: 12:34: command not found

給它一些引用。

$: Test="Today, 12:34"
$: Test='Today, 12:34'
$: Test=Today,\ 12:34

然后你可以使用內置的bash 參數解析。

$: Test='Today, 12:34'
$: Date=12.12.2000
$: Test="${Test/Today/$Date}"
$: echo "$Test"
12.12.2000, 12:34

這對我有用:

Test="Today, 12:34"
Date=12.12.2000
sed 's/Today/'"$Date"'/g' <<<"$Test"

編輯:如果您想更改變量 Test,如評論中所述,您需要賦值:

Test="Today, 12:34"
Date=12.12.2000
Test=$(sed 's/Today/'"$Date"'/g' <<<"$Test")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM