我有这样的问题。在一个文本文件(名为sampleText.txt)中有这样的网址,
webURL = "localhost.com";
我想使用bash脚本更改此值。但是我 尝试了这个我的脚本,但它没有用, 这是我的剧本,
#!/bin/bash
URL=$(awk -F\" '/^webURL/{print $2}' sampleText.txt)
echo $URL
if [ "$URL" != "www.google.com" ]; then
shopt -s globstar for file in sampleText.txt
do
sed -i.bak 's/$URL/www.google.com/g' $file
done
fi
我希望你能帮助我。任何帮助将不胜感激,谢谢......:)
答案 0 :(得分:1)
如果我理解您的意图,您想要将以webURL =
开头的行中的每个网址更改为“www.google.com”吗?如果是这样,你只需
$ sed -i.bak -r '/^webURL/{s/"[^"]+"/"www.google.com"/}' sampleText.txt
如果混合使用单引号和双引号,则可以使用
$ sed -i.bak -r "/^webURL/{s/['\"][^'\"]+[\"']/\"www.google.com\"/}"
将标准化为双引号。
答案 1 :(得分:1)
sed -i "s|\("webURL" *= *\).*|\1www.google.com|" sampleText.txt
答案 2 :(得分:0)
脚本可以更新为:
#!/bin/bash
url="www.google.com"
sed -i.bak "/^webURL/{s@\"[^\"]*\"@\"$url\"@}" sampleText.txt