我有这样的文件(数十个变量):
PLAY="play"
APPS="/opt/play/apps"
LD_FILER="/data/mysql"
DATA_LOG="/data/log"
我需要一个将变量输出到另一个文件中的脚本(它们之间有空格):
PLAY=${PLAY} APPS=${APPS} LD_FILER=${LD_FILER}
有可能吗?
答案 0 :(得分:3)
我会说:
$ awk -F= '{printf "%s=${%s} ", $1,$1} END {print ""}' file
PLAY=${PLAY} APPS=${APPS} LD_FILER=${LD_FILER} DATA_LOG=${DATA_LOG}
循环遍历文件,并以格式=
和空格一起打印var=${var}
之前的内容。最后,它会打印一个新行。
请注意,这会在行尾留下一个尾随空格。如果这很重要,我们可以检查如何改进它。
答案 1 :(得分:1)
r'\btest\s*:\s*(.*)\.'
答案 2 :(得分:0)
sed 's/"\([^"]*"\)"/={\1}/;H;$!d
x;y/\n/ /;s/.//' YourFile
您的样本排除最后一行,如果这很重要
sed '/DATA_LOG=/ d
s/"\([^"]*"\)"/={\1}/;H;$!d
x;y/\n/ /;s/.//' YourFile