【发布时间】:2017-12-04 03:11:03
【问题描述】:
我在 CSV 中有 3rd 字段用于 DateOfBirth 为:02041996
我想将其格式更改为02/04/1996。有什么方法可以在特定位数后添加/?
【问题讨论】:
-
显示示例线。此外,您已显示
19996 -
对不起,打错了,是 1996
我在 CSV 中有 3rd 字段用于 DateOfBirth 为:02041996
我想将其格式更改为02/04/1996。有什么方法可以在特定位数后添加/?
【问题讨论】:
19996
以下将使用awk 的split 函数拆分第三个字段,并且每个字段都由"" 分隔。稍后在打印语句中,使用a[N] 调用每个字段。
awk -F, -v OFS=, '{split($3,a,"");$3=a[1]a[2]"/"a[3]a[4]"/"a[5]a[6]a[7]a[8]}1' csvFile
【讨论】:
使用awk的substr函数:
awk -F, '{ $3=substr($3,1,2)"/"substr($3,3,2)"/"substr($3,5) }1' OFS=',' file
【讨论】:
另一个awk解决方案:
awk -F, '{$3 = gensub(/([^ ]{2})([^ ]{2})(.*)/, "\\1/\\2/\\3", "g", $3)}1' OFS=','
示例:
AMD$ echo " col1 , col2, 02041996, col4 " | awk -F, '{$3 = gensub(/([^ ]{2})([^ ]{2})(.*)/, "\\1/\\2/\\3", "g", $3)}1' OFS=','
col1 , col2, 02/04/1996, col4
【讨论】: