首页 > 解决方案 > Bash/Shell -- 在日期之间插入换行符

问题描述

我有一个包含多个日期/时间等的文件中的数据......

例子:

 12/15/19,23:30,80.2
 12/15/19,23:45,80.6
 12/16/19,00:00,80.5
 12/16/19,00:15,80.2

并且想使用一些命令来自动遍历整个文件,并且只要日期发生变化,它就会插入 2 个空白行,以便我能够更清楚地看到日期何时发生变化。

在所述命令之后我正在寻找文件的示例:

 12/15/19,23:30,80.2
 12/15/19,23:45,80.6


 12/16/19,00:00,80.5
 12/16/19,00:15,80.2

通过 bash/shell 命令行命令执行此操作的最佳方法是什么?

标签: bashshell

解决方案


使用awk

awk -F',' 'NR>1 && prev!=$1{ print ORS }
{ prev=$1; print }' file
  • 用作,字段分隔符
  • 如果这不是第一行并且prev与 field1 不同,则打印两个换行符(print打印一个换行符,输出记录分隔符ORS另一个)
  • 对于每一行,将 field1 的值保存在变量中prev并打印该行

推荐阅读