gpt4 book ai didi

Bash 脚本在 for 循环中使用 sed 和变量?

转载 作者:行者123 更新时间:2023-11-29 08:49:52 30 4
gpt4 key购买 nike

我正在尝试编写一个 bash 脚本,该脚本采用一些变量,然后使用 grep 对给定的文件搜索进行查找/替换,以获取包含该字符串的文件列表。我认为我遇到的问题是在 sed 中看到变量我不确定它可能是什么。

if [ "$searchFiles" != "" -a "$oldString" != "" -a "$newString" != "" ]; then
echo -en "Searching for '$searchFiles' and replacing '$oldString' with '$newString'.\n"
for i in `grep $oldString $searchFiles |cut -d: -f1|uniq`; do
sed -i 's/${oldString}/${newString}/g' $i;
done
echo -en "Done.\n"
else
usage
fi

最佳答案

使用双引号以便 shell 可以替换变量。

for i in `grep -l $oldString $searchFiles`; do
sed -i "s/${oldString}/${newString}/g" $i;
done

如果您的搜索或替换字符串包含您需要转义的特殊字符:Escape a string for a sed replace pattern

关于Bash 脚本在 for 循环中使用 sed 和变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7033860/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com