Bash 替换从文件读取的行中的变量
我已读取包含以下变量的配置文件:Bash 替换从文件读取的行中的变量,bash,Bash,我已读取包含以下变量的配置文件: export BASE_DIR="\usr\usr1" 在同一个脚本中,我逐行读取一个文件,我想用\usr\usr1替换${BASE\u DIR} 在脚本中: while read line; do echo $line done <file.txt 读行时;做 回音$线 完成可以使用sed,此命令将搜索并替换一个值。美元符号是分隔符 sed -ie 's$\${BASE_DIR}$\\usr\\usr1$1' hello.txt 可以使用sed,
export BASE_DIR="\usr\usr1"
在同一个脚本中,我逐行读取一个文件,我想用\usr\usr1
替换${BASE\u DIR}
在脚本中:
while read line; do
echo $line
done <file.txt
读行时;做
回音$线
完成可以使用sed,此命令将搜索并替换一个值。美元符号是分隔符
sed -ie 's$\${BASE_DIR}$\\usr\\usr1$1' hello.txt
可以使用sed,此命令将搜索和替换一个值。美元符号是分隔符
sed -ie 's$\${BASE_DIR}$\\usr\\usr1$1' hello.txt
读取包含赋值的行时,需要设置变量。那你以后可以换了
#!/bin/bash
while read line; do
if [[ $line =~ ^BASE_DIR= ]]
then basedir=${line#BASE_DIR=}
fi
line=${line/'${BASE_DIR}'/$basedir}
printf "%s\n" "$line"
done < file.txt > newfile.txt
#/bin/bash
读行时;做
如果[$line=~^BASE\u DIR=]]
然后basedir=${line#BASE#u DIR=}
fi
line=${line/'${BASE_DIR}'/$basedir}
printf“%s\n”$line
完成newfile.txt
读取包含赋值的行时,需要设置变量。那你以后可以换了
#!/bin/bash
while read line; do
if [[ $line =~ ^BASE_DIR= ]]
then basedir=${line#BASE_DIR=}
fi
line=${line/'${BASE_DIR}'/$basedir}
printf "%s\n" "$line"
done < file.txt > newfile.txt
#/bin/bash
读行时;做
如果[$line=~^BASE\u DIR=]]
然后basedir=${line#BASE#u DIR=}
fi
line=${line/'${BASE_DIR}'/$basedir}
printf“%s\n”$line
完成newfile.txt
@Aavikecho$(…)
是多余的。我想他想用变量的值替换${BASE\u DIR}
,而不是硬编码到脚本中的字符串。@melpomene我有echo$(…),因为我想将此内容写入文件。echo$(eval echo${line})>file1。有更好的方法吗?@Aavik是的,只需删除echo$(…)
并执行eval echo“${line}”>file1
@Aavikecho$(…)
是多余的。我想他想用变量的值替换${BASE_DIR}
,而不是硬编码到脚本中的字符串。@melpomene我有echo$(…)因为我想把这些内容写入一个文件。echo$(eval echo${line})>file1。有更好的方法吗?@Aavik是的,只需删除echo$(…)
并执行eval echo“${line}”>file1