Linux Bash脚本获取一个日志文件的时间戳,并从另一个日志文件的时间戳中减去它

Linux Bash脚本获取一个日志文件的时间戳,并从另一个日志文件的时间戳中减去它,linux,bash,scripting,Linux,Bash,Scripting,我正在尝试编写包含以下信息的脚本: 4824597 11:26 /home/customer1/ITAM.xml . . . . 4824597 14:08 /home/customer46/ecds/dropoff/ITAM.xml 我有另一个文件将记录相同的信息 4824597 11:28 /home/customer1/ITAM.xml . . . . 4824597 14:11 /home/customer46/e

我正在尝试编写包含以下信息的脚本:

   4824597 11:26 /home/customer1/ITAM.xml
   .
   .
   .
   .
   4824597 14:08 /home/customer46/ecds/dropoff/ITAM.xml
我有另一个文件将记录相同的信息

   4824597 11:28 /home/customer1/ITAM.xml
   .
   .
   .
   .
   4824597 14:11 /home/customer46/ecds/dropoff/ITAM.xml
我想看看接收文件需要多长时间。为此,我想减去日志中记录的所有文件的时间戳,并从第一个日志文件中的初始时间戳中减去它们

我是一个新的脚本编写者,我正在努力让它工作。我正在努力:

   #!/bin/bash
   time=$11:48:30
   day=$2012-10-12
   time2=$13:13:48
   t=$(date -d "day time" +%s)
   t1=$(date -d "day time2" +%s)
   diff=$(expr $t1 - $t)
   echo $diff

到目前为止没有运气。任何帮助都将不胜感激。

尝试以下方法:

awk '{
  sub(/:/," ",$2);
  t1=mktime(strftime("%Y %m %d")" "$2" 00");
  getline < "input2.txt";
  sub(/:/," ",$2);
  t2=mktime(strftime("%Y %m %d")" "$2" 00");
  print $3": "t2-t1" s"
}' input1.txt
awk'{
分(/:/,“”,$2);
t1=mktime(strftime(“%Y%m%d”)”$2“00”);
getline<“input2.txt”;
分(/:/,“”,$2);
t2=mktime(strftime(“%Y%m%d”)”$2“00”);
打印$3:“t2-t1”s
}'input1.txt

是否可以在日志文件中获取时间戳,该时间戳将转到秒?现在我有timestamp=$(du--time style=full iso“$THIS_FILE”| cut-f2)如果您有可用的
stat
命令行实用程序(我认为大多数Linux都有),您可以从
stat-c%Y filename
的纪元开始以秒为单位获得文件修改时间。有关详细信息,请参见
man 1 stat
“输入*.txt文件是日志文件吗?嘿,当我对发送的文件运行命令时,我得到一个奇怪的输出-7190560 s;命令是否应该在几秒钟内输出?@user2019182是。另外,它假设
11:26
的格式为
hh:mm
。如果格式是
mm:ss
,您需要将
“$2”00”
更改为
“00”$2
。好的,它被设置为hh:mm,因此我不确定它是否实际引用毫秒,因为这是有意义的,或者它是否从1970年开始将时间转换为秒。