我的配置文件中有一个字符串,如
FirstParam|MyFile`date +"%Y%m%d"`.xml
我的脚本读取此行并通过管道分割值(例如“|”)我想将第二部分即MyFile`date +“%Y%m%d”`.xml转换为MyFile20141215.xml并将其传递给另一个方法。实现这一目标的最佳方式是什么?
提前致谢。
答案 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