在不指定键的情况下查找和替换文件中所有键的值的最佳方法是什么?
示例:
originalFile.txt ------------------------------------> newFile.txt
key1=a key1=$key1
key2=b key2=$key2
key3=c key3=$key3
我想到了这个,但是我无法为任何新添加的密钥动态地完成它:
sed '/^key1/s/=.*$/= $key1/' newFile.txt
答案 0 :(得分:2)
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
答案 1 :(得分:0)
这应该做到:
sed -re 's/^(key[[:digit:]]+)=.*$/\1=\$\1/' originalFile.txt
之所以起作用,是因为(因为使用了-r
选项),一对括号捕获了其匹配项。在替换模式中,\1
复制匹配的文本。
答案 2 :(得分:0)
此脚本从env中提取密码并将其包含在新文件中:
product_variation