X3n*_*ion 14 string variables bash replace
我想替换变量中的字符串,例如:
Test=Today, 12:34
Run Code Online (Sandbox Code Playgroud)
我想用我之前声明的变量替换Test变量中的“今天”。Date
我尝试使用sed命令:
sed -i -e "s/Today/$Date" '$Test'
Run Code Online (Sandbox Code Playgroud)
但它只会打印出错误并且文件'$Test'未知。只能使用sed文本文件吗?
Pau*_*ges 13
首先,这是一个语法错误。
$: Test=Today, 12:34
bash: 12:34: command not found
Run Code Online (Sandbox Code Playgroud)
加上一些引用。
$: Test="Today, 12:34"
$: Test='Today, 12:34'
$: Test=Today,\ 12:34
Run Code Online (Sandbox Code Playgroud)
然后你可以使用bash内置的参数扩展:
$: Test='Today, 12:34'
$: Date=12.12.2000
$: Test="${Test/Today/$Date}"
$: echo "$Test"
12.12.2000, 12:34
Run Code Online (Sandbox Code Playgroud)
这对我有用:
Test="Today, 12:34"
Date=12.12.2000
sed 's/Today/'"$Date"'/g' <<<"$Test"
Run Code Online (Sandbox Code Playgroud)
编辑:如果您想更改变量 Test,如评论中提到的,您需要分配:
Test="Today, 12:34"
Date=12.12.2000
Test=$(sed 's/Today/'"$Date"'/g' <<<"$Test")
Run Code Online (Sandbox Code Playgroud)