入力する:
1,012018,111
2,1-2018,111
3,10-2018,111
出力:
1,01/2018,111
2,01/2018,111
3,10/2018,111
月と年をmm / yyyyに編集する効果をどのように取得できますか?
ベストアンサー1
GNU Awkを使用して、patsplit
2番目のカンマ区切りフィールドを最大2桁の小数のサブフィールドに分割します。
$ gawk 'BEGIN{OFS=FS=","} {patsplit($2,a,/[0-9][0-9]?/); $2 = sprintf("%02d/%d%d", a[1], a[2], a[3])} 1' file
1,01/2018,111
2,01/2018,111
3,10/2018,111
Perlがオプションの場合
perl -F, -lpe '
$F[1] =~ s{(\d\d?)-?(\d+)}{sprintf "%02d/%d", $1, $2}e;
$_ = join ",", @F
' file