我有一个文件./123bar/foo.txt
,其中包含:
pro := text
ver := 1.0
rev := 2
和两个环境变量:
var =2.1
var2=3
我想将所有内容替换ver
为$var
和。预期输出:rev
$var2
pro := text
ver := 2.1
rev := 3
find
我在下面尝试首先找到所有带有and的文件,grep
然后将其传递sed
给以实现结果。下面是我正在运行的命令:
find . -name 'foo.txt' | grep -P "\/[0-9]{3}bar" | xargs -I{} sed -E "s/:= *[0-9]+\.[0-9]+ *$/:= $var/g" -E "s/:= [0-9]+ *$/:= $var2/g" {}
它不起作用并给我错误:
sed: can't read s/:= [0-9]+ *$/:= 3/g: No such file or directory
pro := text
ver := 2.1
rev := 45
我如何解决它?也欢迎更简洁/更简洁的解决方案。