【问题标题】:check T dated files and then check if any thing is there in that file检查 T 日期文件,然后检查该文件中是否有任何东西
【发布时间】:2014-02-26 07:25:30
【问题描述】:

将今天的日期视为 24/02/14

我在提及目录“/apps_kplus/KplusOpenReport/crs_scripts/rconvysya”中有一组文件,文件名为

INTTRADIVBMM20142402

INTTRADIVBFX20142402

INTTRADIVBFI20142402

INTTRADIVBDE20142402

INTPOSIVBIR20142402

INTPOSIVBIR20142302

INTTRADIVBDE20142302

INTTRADIVBFI20142302

INTTRADIVBFX20142302

INTTRADIVBMM20142302

我需要找到今天的日期文件(计数总是5),然后需要检查是否有任何文件是空的?所以有两种方法。

第一次检查文件大小

第二次检查这些文件中的字数

到目前为止,我能够获取今天的日期文件(计数始终为 5),如何检查第二个条件,即文件是否为空。如果文件不为空,则退出 4,否则退出 3。 我的代码是

 #! /bin/bash
tm=$(date +%y%d%m)
x=$(ls /apps_kplus/KplusOpenReport/crs_scripts/rconvysya/ | grep $tm | wc -l)
if [ $x -eq 5 ]
then
exit 4
else
exit 3

【问题讨论】:

    标签: linux bash shell unix csh


    【解决方案1】:

    你可以试试下面的:

    tm=$(date '+%Y%m%d')
    count=0
    loc="/apps_kplus/KplusOpenReport/crs_scripts/rconvysya/*$tm"
    for f in $loc; do        
        if [ ! -s $f ]; then
            exit 3
        fi
        (( count++ ))
    done
    
    if [ $count -ne 0 ]; then
        exit 4
    fi
    

    【讨论】:

    • 你能提供我确切的查询吗?我是脚本新手。
    • 已更新,如果任何有日期的文件为空,它将以返回码 3 退出,否则返回码为 4
    • 抱歉,它不起作用。为了理解,我用 echo 替换了 exit。但即使提及文件夹中没有 T 日期文件,仍然查询输出为 4。我在文件夹中放置了一个大小为 0k 的文件,仍然输出为 4。
    • 更新为仅在找到的所有文件均非空时返回 4
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-03
    • 2022-01-01
    • 2023-03-25
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多