有人可以建议一个快速的oneliner 在unix 中将20111214 转换为2011.12.14 吗?
我认为这应该可以在 sed/awk 中完成,对吧?将以下列表转换为 2011.08.01 ...等等
20110801
20110802
20110803
20110804
20110805
20110808
只是不够聪明,无法弄清楚如何做
任何建议?
i think this should be do-able in sed/awk, right? convert the following list to 2011.08.01 ... etc
20110801
20110802
20110803
20110804
20110805
20110808
just not smart enough to figure out how to do it
any suggestiongs?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
使用 GNU 日期:
它会在无效日期时崩溃。
Using GNU date:
It barfs on invalid date.
输入字符串可以接近可以识别为日期的所有内容。
The inputstring can be close to everything which can be identified as a date.
所以对于你的情况,类似:
So for your case, something like:
这可能对你有用:
This might work for you:
在 sed 中:
正如 potong 在评论中指出的那样,实际上没有必要指定所有三个组。你可以改为使用
In sed:
As pointed out by potong in a comment, it's not actually necessary to specify all three groups. You could instead use
呆呆地
gawk
对于 awk,当你有 printf 时为什么要使用 substr 呢?
For awk, why substr when you have printf??