gpt4 book ai didi

linux - 重新排序 block 字符串

转载 作者:太空宇宙 更新时间:2023-11-04 04:32:54 25 4
gpt4 key购买 nike

我在日志中收到来自 Windows 的字符串

 InstallDate=20171026224422.000000+300

如何使用 sed 从该字符串中提取日期和时间并将其表示为人类可读的格式?我的意思是 10/26/2017 22:44:22 我对日期解决方案的看法(伪):

 sed -nr 's/.*=([0-9]{1,4})([0-9]{1,2})([0-9]{1,2}).*/\2/\\1/\\3/p'

但它是伪的,不是真正的解决方案(最后看起来非常糟糕)。如何捕获字符串 block 并在之后重新排序?

最佳答案

您的 sed 命令存在一些问题,以下应该可以工作:

sed -nr 's/.*InstallDate=([0-9]{4})([0-9]{2})([0-9]{2}).*/\2\/\3\/\1/p' <input.txt

或者随着时间

sed -nr 's/.*InstallDate=([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2}).*/\2\/\3\/\1 \4:\5:\6/p' <input.txt
  • / 必须转义为正则表达式分隔符(请注意,也可以使用其他分隔符,例如 s,,,s@@@ 等)
  • 反向引用必须仅使用一个 \ 进行转义(\1,而不是 \\1)
  • 反向引用的顺序错误
  • 注意开头和结尾的 .* 以使正则表达式匹配整行删除所有其他字符

关于linux - 重新排序 block 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48638809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com