使用 sed 替换具有许多特殊字符的行?

jas*_*t.h 2 scripting bash shell-script

我正在为一个项目编写一个相当大的脚本,我在完成它之前遇到的一个问题是使用 sed 命令。

我试图找到一行(位于 cache.php 中):

$cache_directory = './cache'; 
Run Code Online (Sandbox Code Playgroud)

并将信息替换为'./cache'名为 的变量$new_cache_directory

我遇到的问题之一是./cache多次存在。我只想替换那一行,但我也不想“硬编码”行号以“面向未来”。

我怎样才能做到这一点?

Pri*_*ley 5

尝试这个:

sed -i.bak "s:^.*\(\$cache_directory = \)\('./cache'\):\1$new_cache_directory:" infile
Run Code Online (Sandbox Code Playgroud)