使用Bash将所有文件密钥替换为新值
收藏

找到和替换文件中所有键的值而不精确这些键的最佳方法是什么?
例子:

originalFile.txt  ------------------------------------>  newFile.txt              
key1=a                                                   key1=$key1
key2=b                                                   key2=$key2
key3=c                                                   key3=$key3 

我想到了这个,但是我不能为任何新添加的密钥动态地执行它:
sed '/^key1/s/=.*$/= $key1/' newFile.txt


最佳答案:

awk -vFS="=" -v OFS="=" '$2="$"$1' originalFile.txt

使用sed:使用反向引用捕获=\1的左侧和=\2的右侧:
sed -r 's/(^[^=]+)*=(.*)/\1=$\1/g' originalFile.txt
key1=$key1
key2=$key2
key3=$key3

    公众号
    关注公众号订阅更多技术干货!