bash - 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 命令行命令执行此操作的最佳方法是什么?
解决方案
使用awk
:
awk -F',' 'NR>1 && prev!=$1{ print ORS }
{ prev=$1; print }' file
- 用作
,
字段分隔符 - 如果这不是第一行并且
prev
与 field1 不同,则打印两个换行符(print
打印一个换行符,输出记录分隔符ORS
另一个) - 对于每一行,将 field1 的值保存在变量中
prev
并打印该行
推荐阅读
- python - 如何更有效地组织 Padas Dataframes 中单元格内的元组列表?
- javascript - Shopify 如何使用 Liquid 代码段更新 UI 中的数量
- c++ - 如何将字符串转换为目录条目?
- java - 反思与收藏
- pygame - 移动一个精灵,但不能删除它的前一个图像
- javascript - 部署应用程序并出现临时错误:未捕获的 SyntaxError:预期的表达式,得到 '<'
- javascript - 如何从 vis3d.js Graph3D 动画中删除过滤器标签
- java - 带有 springdoc-openapi-ui 的 Swagger UI 不显示生成的“@Controller”类中的 API
- regex - 正则表达式自定义匹配标签ang得到它的组?
- split - 类型错误:字符串索引必须是整数错误,我无法在堆栈溢出时找到解决方案