【问题标题】:How can i use awk command in csv files如何在 csv 文件中使用 awk 命令
【发布时间】:2020-12-13 13:06:11
【问题描述】:

在我们的 csv 名称中包含年、月、日、小时、分钟,例如:abc_202002111500.csv 所以我们每次都有很多 csv 文件。

如果我想在 2020 年 12 月 2 日 15:00 -15:59 之间搜索 1234 的号码;

awk -F"|" '{if ($3 == 1234) print $5}' abc_2020021115*.csv

那么如果我想在 15:00 -17:00 之间写相同的数字呢?

awk -F"|" '{if ($3 == 1234) print $5}' abc_20200211?????.csv

【问题讨论】:

  • 文件名中的通配符由命令 shell 解释,而不是 awk。请编辑您的问题,指定您使用的命令外壳。也相应地调整标签。
  • 这个问题与 awk 无关——你问的是如何使用 globbing 识别 shell 中的特定文件。您将这些文件名传递给 awk 的事实完全不相关,您可以将它们传递给 cat、grep 或任何其他命令。

标签: shell csv wildcard


【解决方案1】:

答案依赖于大多数shell的一个特性,搜索shell wildcard range了解详情。

在您的情况下,请使用 abc_202002111[56]*.csv 而不是 abc_2020021115*.csv

【讨论】:

    【解决方案2】:

    如果您希望在 GNU AWK 中进行文件过滤,您可以利用 BEGINFILEnextfile 来实现。

    【讨论】:

      猜你喜欢
      • 2022-01-07
      • 1970-01-01
      • 2020-06-30
      • 1970-01-01
      • 2016-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多