在文件内容中搜索单词和日期 - shell脚本

时间:2016-01-12 12:33:36

标签: linux bash shell

我是shell脚本新手。让我知道如何编写下面的senario脚本。

名为file1.txt的文件包含一些批处理执行详细信息,最后2行将包含当前日期作业的成功或失败。现在我需要搜索成功一词,然后在文件的最后两行中有当前日期。如果使用当前日期成功,则设置变量$ f1,其值为1,否则为0.如何进行?

对文件的最后2行进行采样:

Trankey|BVCFG-B|989898|success|12/01/2016|01:34:07|12/01/2016|01:36:08
|file1.txt|ct32000001dev|transform

1 个答案:

答案 0 :(得分:0)

为当前日期静静地grep file1.txt的最后两行。

tail -n 2 file1.txt | grep -q "success|$(date "+%d/%m/%Y")"

根据f1是否找到模式(grep中最后执行的命令的返回码)设置$?

if $?   ## could replace this with the pipe line above
then
    f1=1
else
    f1=0
fi

最后一个很奇怪。你可能会以某种方式否定$?中的值,但更一般地说,bash的成功是0,而不是1.(反过来说它是如何用C,C ++,Java等。)

因此,如果你使用f1的语义,事情会变得更容易:

f1=$?