perl awk OR sed,在两个时间戳之间搜索

2024-01-09

我有一个包含以下示例文本的文件。 (实际文字很大)。

2014/05/08-19:15:44.544824-<String1>
2014/05/08-19:21:54.544824-<String2>
2014/05/08-19:34:59.564461-<String3>

我必须提取两个时间戳之间的数据,例如 19:15:00 - 19:20:00 等等,直到 eof。我尝试过使用 sed 和 awk,但问题是在某些时候它们会给出所有内容。 (例如,他们会给出 19:15:00 --> EOF 期间的所有内容)。我使用的命令是

awk '/19:15:00/,/19:20:00/' InputFile

and

sed '/19:15:00/,/19:20:00/p' Inputfile.

关于如何在 perl 或 sed & awk 中执行此操作的任何想法,这实际上可能有效吗?错误的输出是否与时间戳的格式有关? (只是想)

附言。我正在使用以下代码来制作时间戳。 (是否有可能因为本地时间功能而发生这种情况?

$curr = timelocal(0, 0, 0, (split /\//, $ARGV[0])[1], (split /\//, $ARGV[0])[0]-1, (split /\//, $ARGV[0])[-1]);
$currentTime = strftime "%H:%M:%S", localtime($curr);

使用 Perl 单行代码。捕捉时间然后进行比较。

perl -ne '$t = /(\d+:[\d:.]+)/ ? $1 : undef; 
    print if $t ge "19:15:00" && $t le "19:20:00";' file.txt
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

perl awk OR sed,在两个时间戳之间搜索 的相关文章

随机推荐