在文件中搜索两个特定数字之间的数字

在文件中搜索两个特定数字之间的数字
$ cat logfile
1;1472223253;frank;12344;1472224386
2;1472223265;andrew;shop;
3;1472225515;frank;12345;1472225531
4;1472225526;joe;12344;1472225534

我可以运行什么来获取包含 1472225000 和 1472226000 之间数字的行?

3;1472225515;frank;12345;1472225531
4;1472225526;joe;12344;1472225534

答案1

awk -F';' '$2 > 1472225000 && $2 < 1472226000' < logfile

告诉 awk 使用分号作为字段分隔符(-F';'-- 单引号是为了防止 shell 将分号视为命令分隔符;您可以使用-F\;),然后选择字段 2 的值介于您提供的值之间的行。选择一行后,默认操作是打印它。

编辑以将解决方案概括为任何进行比较的字段资格:

awk -F';' '{ 
  flag=0; 
  for (i=1;i<=NF;i++) if ($i > 1472225000 && $i < 1472226000) flag=1; 
  if (flag) print
}' < logfile

相关内容