执行shell脚本时获取不同的日期时间

时间:2015-05-08 08:15:31

标签: shell unix ksh

我有shell脚本(ksh),它通过SPOOL从oracle table x将文件写入xxxx unix目录。

表x具有seq_no的列。应该为不同的seeq_no生成文件。

E.G。

table x data

seq_no,a,b,c
1,2,3,4
1,5,6,7
1,8,9,10
2,1,2,3
2,4,5,6
2,7,8,9

文件名= test _ $ {STAMP} .csv

在这种情况下,应该生成两个具有不同timstamp的文件,因为我们在表x中有2个不同的seq_no。

当脚本运行时STAMP = date +%Y%m%d%H%M%S变量只能保存一个值。所以我的第一个文件被第二个文件重写。

请告诉我如何在shell脚本处于执行状态时找到当前日期时间。

1 个答案:

答案 0 :(得分:0)

如果我正确地提出您的问题,您需要有单独的文件,每个文件只包含特定序列号的记录。

如果您可以更改方法,那么您可以尝试以下内容:

  1. 使用另一个文件假设seq_file来查询不同的序列号。

     Content of seq_file:
    1
    2
    3
    5
    
  2. 迭代seq_filegrep "^${seq},"的每一行并将输出重定向到所需文件,可能是您可以计算STAMP2变量以用于最终文件名。

    while read seq
    do
       STAMP2=`date +%Y%m%d%H%M%S`
       grep "^${seq}," test_${STAMP}.csv >> ${seq}_$STAMP2
    done<seq_file