我正在尝试从文件名中提取日期。这就是我的工作:
find ${DPPATH}/${DBNAME}*.dmp.gz ${MTIMECMD} -type f -exec
(执行一个动作。这可以按预期工作。)
我想要做的是从通过find命令找到的文件名中提取日期(它将是YYYYMMDD格式),然后使用该日期传递给find命令,其中操作是进行。
我试过这个尝试在脚本中的find命令上方获取日期,希望提取:
MOVEDATE=echo ${DPPATH}/${DBNAME}*.dmp.gz ${MTIMECMD} -type f |grep -Eo '[[:digit:]]{8}';
编辑,尝试了这个建议:
${MOVEDATE}=echo ${DPPATH}/${DBNAME}*.dmp.gz ${MTIMECMD} -type f |grep -Eo '[[:digit:]]{8}'\;
结果是:
=echo: not found
然后,将$ MOVEDATE传递给find命令,但没有运气。
我在脚本(-x
)中使用'debug'选项,结果是:
<filename> cannot execute [Permission denied]
文件名的名称如下:
blah_blah_blah_exp_01_20180221_0100.dmp.gz:
上面的MTIMECMD只是一个查找超过x小时数的文件的变量。
任何提示都将不胜感激。
答案 0 :(得分:0)
你想做的是这样的事情:
not
它告诉bash在括号中为变量MOVEDATE=$(ls -1 ${DPPATH}/${DBNAME}*.dmp.gz ${MTIMECMD} |grep -Eo '[[:digit:]]{8}')
分配命令的结果。