在unix中评估配置文件中的字符串

时间:2014-12-15 08:02:49

标签: shell unix

我的配置文件中有一个字符串,如

 FirstParam|MyFile`date +"%Y%m%d"`.xml

我的脚本读取此行并通过管道分割值(例如“|”)我想将第二部分即MyFile`date +“%Y%m%d”`.xml转换为MyFile20141215.xml并将其传递给另一个方法。实现这一目标的最佳方式是什么?

提前致谢。

2 个答案:

答案 0 :(得分:1)

我会使用的那个快速而又脏的是(假设a.txt是你的文件)

TodayFileName=`cut -d\| -f2 a.txt`
eval TodayFileName=$TodayFileName

答案 1 :(得分:0)

当您关注安全性时,您希望避免评估“外部”命令。 当配置文件和脚本一样安全时,eval就可以了。 如果权限较少的人可以更改配置文件,请考虑解析 包含特殊字段的字符串:

$-> cat myfile
FirstParam|MyFileSED_YYYYMMDD.xml

$-> cat myParser
cat myfile | while IFS=\|; read firstfield secondfield; do
        echo Split into ${firstfield} en ${secondfield}
        echo "callingOtherMethodWith $(echo ${secondfield} |
           sed 's/SED_YYYYMMDD/'$(date +"%Y%m%d")'/')"
done