输入:
1,2,20,11
1,1,2018,111
输出:
1,02,20,11
1,01,18,111
我想插入0
到字段号 2,如果它是单个数字,则为月份。
并且想要从字段号 3 中删除前 2 位数字,如果它是 4 个数字,则为年份。
输入:
1,2,20,11
1,1,2018,111
输出:
1,02,20,11
1,01,18,111
我想插入0
到字段号 2,如果它是单个数字,则为月份。
并且想要从字段号 3 中删除前 2 位数字,如果它是 4 个数字,则为年份。
使用
awk
:这无条件地将第二个逗号分隔字段重新格式化为零填充的两位整数。如果第三个字段的长度为四个字符,则其前两位数字将被删除。然后打印生成的记录。
使用
awk
:length($3)
返回 column3 的长度;-1
用于让LENsubstr($3, START[, LEN])
个字符的返回长度从倒数第二个数字位置开始(现在)。如果省略了可选的LEN ,则使用START的其余部分。length($3)-1
编辑修改后的问题(现在有 4 列):
对于 N 列(至少 3列)的一般情况:
命令
输出
处理这种情况的一种方法如下所示:
命令
输出
解释:
s/// 命令中的 /e 标志会将 RHS 视为 Perl 代码,并应使用提供的任何参数对其进行评估,并将此评估的结果作为 s/// 命令的 RHS。