我想替换变量中的字符串,例如:
Test=Today, 12:34
我想用我之前声明的
Test
变量替换变量 Date
中的“今天”。
我尝试使用
sed
命令:
sed -i -e "s/Today/$Date" '$Test'
但是它只会打印出错误并且文件
'$Test'
未知。 sed
只能用于文本文件吗?
首先,这是一个语法错误。
$: 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")