然后将字符串中的股票日期拆分为测试

时间:2014-06-11 08:34:08

标签: bash date split

我对在特定日期最后修改的文件执行了一些操作。我想获取日期,将其存入字符串,然后将其拆分以测试该日期是否符合我的要求。 到目前为止,我一直在尝试这样的事情:

    #!/bin/bash

for i in {45..236}; do
    nom=M$i
    chem=/Users/nfs/helene/soft/metAMOS-1.5rc3/$nom.fastq/Assemble/out
    if [ -e $chem ]; then
        IN= $(date -r $chem)
        arr=(${IN//\ / })
        if [[ ${arr[1]} == 'juin' && ${arr[2]} == '10' ]]; then
            echo $nom
            #cp $chem/proba.faa /Users/nfs/helene/metagenomes/DB/$nom.faa
        fi
    fi
done
exit 0

但似乎日期并没有充足的IN IN,我也不确定空间分裂......

1 个答案:

答案 0 :(得分:0)

也许一个简单的错误就是你没有将你的作业放在=附近。必须是:

    IN=$(date -r $chem)

这是一个简化的建议:

#!/bin/bash

for i in {45..236}; do
    nom="M${i}"
    chem="/Users/nfs/helene/soft/metAMOS-1.5rc3/${nom}.fastq/Assemble/out"
    if [[ -e $chem ]]; then
        read month day < <(exec date -r "$chem" '+%b %d')
        if [[ $month == 'Jun' && $day == 10 ]]; then
            echo "$nom"
            # cp "$chem/proba.faa" "/Users/nfs/helene/metagenomes/DB/$nom.faa"
        fi
    fi
done

exit 0

* 有关格式列表,请参阅date --help * <()是一种流程替换形式。检查Bash的手册 * 当变量有变量时,请始终将参数放在双引号旁边以避免分词。