变量来自bash'如果echo grep'

时间:2016-04-20 12:15:12

标签: bash shell

我使用以下代码将我的CCTV录制和捕获分类为超过一天的日期子目录。

有没有办法将echo grep date代码的IF部分的结果作为变量引用,以便在创建文件夹时可以使用它?

我可以在一个单独的行上创建一个变量,使用另一个grep(或定义变量并在IF语句中引用它),但是如果全部在一行上则更喜欢。

文件名类似于' MDAlarm_20160417-120925.jpg'所以变量的内容将是2016-04-17。

for f in ~/FI9803P_00626E5755DE/**/*;
do
    if [[ `echo $f | grep -oP '\d{8}' | date -f - +'%Y-%m-%d'` != `date +'%Y-%m-%d'` ]]; then
        mkdir -p $(dirname $f)/$varFromIF; echo "Made it" #mv $f $(dirname $f)/$varFromIF
    fi
done

1 个答案:

答案 0 :(得分:1)

是。你可以这样做:

for f in ~/FI9803P_00626E5755DE/**/*;
do
    if [[ "${varFromIF=$(echo $f | grep -oP '\d{8}' | date -f - +'%Y-%m-%d')}" != $(date +'%Y-%m-%d') ]]; then
        mkdir -p $(dirname $f)/$varFromIF; echo "Made it" #mv $f $(dirname $f)/$varFromIF
    fi
done