我有以下格式的文件
----------------------------------------
Name: cust foo
mail: [email protected]
Account Lock: FALSE
Last Password Change: 20170721085748Z
----------------------------------------
Name: cust xyz
mail: [email protected]
Account Lock: TRUE
Last Password Change: 20181210131249Z
----------------------------------------
Name: cust bar
mail: [email protected]
Account Lock: FALSE
Last Password Change: 20170412190854Z
----------------------------------------
Name: cust abc
mail: [email protected]
Account Lock: FALSE
Last Password Change: 20191030080405Z
----------------------------------------
我想将Last Password Change
数据格式更改为YYYY-MM-DD
但不确定如何使用sed
或awk
是否有任何其他方法,我可以尝试循环它并使用date -d
选项但不确定是否有更简单的方法来使用正则表达式
由于您所做的只是添加两个破折号并删除一些额外的字符,因此不需要
date
.对于更严格的模式,点(匹配任何字符)可以替换
[0-9]
为仅匹配数字。\1
等在替换当然扩展到括号中的模式匹配。这是我的建议:
输出:
我能够使用以下
awk
命令完成此操作::
用作字段分隔符,如果第一列匹配Last Password Change
,我们将使用提取substr
年、月和日期,并将第二列替换为所需格式的值。