从 df 的两列中获取 yyyymm,其中年份是 yyyy,月份只是 m

问题描述 投票:0回答:3
<existing  > [Required]
Year  Month   Year_mnth
1942    1      194201
1942    2      194202
1942    3      194203
...
1942   10      194210
1942   11      194211
1942   12      194212

不能添加所需的零以使它们全部 yyyymm

date concatenation
3个回答
0
投票

您可以使用

awk
并要求
printf
进行零填充:

$ printf '%.2d\n' 1
01
$ printf '%.2d\n' 10
10

我只是给出提示,所以不是免费的编码服务。


0
投票

在 printf 格式的 bash 循环中用零填充左侧

$ while read yr mo; do printf "%s%02d\n" "$yr" "$mo"; done < file
194201
194202
194203
194210
194211
194212

0
投票

你可以

printf
它,或者只是将年份乘以 100 :

mawk '$++NF = 100 * $++_ + $(_+_--)'
 1942 1 194201 194201
 1942 2 194202 194202
 1942 3 194203 194203
 ...
 1942 10 194210 194210
 1942 11 194211 194211
 1942 12 194212 194212

另一种更蛮力的方法只涉及

substr()

nawk '$++NF = $1 substr("0"$2, length($2), 2)'
gawk '$++NF = $1 substr("0", length($2)) $2' 
 1942 1 194201 194201
 1942 2 194202 194202
 1942 3 194203 194203
 ...
 1942 10 194210 194210
 1942 11 194211 194211
 1942 12 194212 194212
© www.soinside.com 2019 - 2024. All rights reserved.