awk - awk 将空格后的信息复制到新列
问题描述
我有一个小时值的数据,并且想将小时值从日期列复制到一个新列。鉴于:
01/02/2021 07:00,54596894,0,SIEA
01/02/2021 09:00,55038801,0,SIEA
01/02/2021 06:00,55038845,0,SIEA
01/02/2021 02:00,78434342,0.004,SIEA
01/02/2021 15:00,78434429,0,SIEA
01/02/2021 17:00,78434838,0.005,SIEA
01/02/2021 05:00,78508079,2.715,SIEA
01/02/2021 19:00,79083881,0,SIEA
01/02/2021 12:00,82928135,0,SIEA
01/02/2021 01:00,83889954,0,SIEA
我希望结果是:
01/02/2021 07:00,54596894,0,SIEA,07
01/02/2021 09:00,55038801,0,SIEA,09
01/02/2021 06:00,55038845,0,SIEA,06
01/02/2021 02:00,78434342,0.004,SIEA,02
01/02/2021 15:00,78434429,0,SIEA,15
01/02/2021 17:00,78434838,0.005,SIEA,17
01/02/2021 05:00,78508079,2.715,SIEA,05
01/02/2021 19:00,79083881,0,SIEA,19
01/02/2021 12:00,82928135,0,SIEA,12
01/02/2021 01:00,83889954,0,SIEA,01
我一直在使用 awk,但只能得到它来给我专栏的第一部分。我需要得到空格后面的内容,空格后面只有两个字符。 复制字符串结尾并粘贴到新列
awk '{n=split($1,a,""); 打印 $0","a[n]}'
生产
01/02/2021 07:00,54596894,0,SIEA,01/02/2021
01/02/2021 09:00,55038801,0,SIEA,01/02/2021
...
如果我得到空格后的所有字符(尽管我更喜欢只得到两个直接字符),我没问题,但我似乎无法弄清楚如何让它选择分割的另一侧。
解决方案
不需要split
。将字段分隔符设置为:
or
(空格),将输出字段分隔符设置为,
。然后打印整个记录和第二个字段。
awk -F '[: ]' -v OFS=, '{print $0,$2}'
推荐阅读
- python - 列表属性上的 SQLAlchemy 过滤器
- python - Python中列表更改时调用函数
- amp-html - 单击AMP Story html 内容中的标签时,无需提示即可即时重定向
- azure - 尝试在 azure 中删除 sql db 会出现错误“未指定默认订阅”
- nosql - 获取路径上具有特定属性、标签和 id 的所有顶点
- python - 如何使用正则表达式在具有某些规则的字符串中查找子字符串?
- python-3.x - 美丽的汤还是硒?
- cmake - CMake 宏中的返回结束上层 CMake 文件执行?
- c# - 查找带引号的字符串并替换双引号之间的内容
- spring-boot - 任何人都可以帮助我使用 Spring Boot CLI 和 Groovy 更改服务器的端口号