如何使用sed从标准日期格式字符串中生成英国日期?

如何使用sed从标准日期格式字符串中生成英国日期?,sed,Sed,字符串2013年5月3日星期五13:50:37必须重新排序为2013年5月3日星期五13:50:37。使用sed如何实现这一点?sed不是您想要的工具awk: $ echo "Fri May 3 13:50:37 2013" | awk '{print $1,$3,$2,$5,$4}' Fri 3 May 2013 13:50:37 在awk中,$i表示第i个字段,因此只需按要求的顺序排列字段即可 sed不是您想要的工具awk: $ echo "Fri May 3 13:50:37 2013"

字符串
2013年5月3日星期五13:50:37
必须重新排序为
2013年5月3日星期五13:50:37
。使用
sed
如何实现这一点?

sed
不是您想要的工具
awk

$ echo "Fri May 3 13:50:37 2013" | awk '{print $1,$3,$2,$5,$4}'
Fri 3 May 2013 13:50:37

awk
中,$i
表示第i个字段,因此只需按要求的顺序排列字段即可

sed
不是您想要的工具
awk

$ echo "Fri May 3 13:50:37 2013" | awk '{print $1,$3,$2,$5,$4}'
Fri 3 May 2013 13:50:37

awk
中,$i
表示第i个字段,因此只需按要求的顺序排列字段即可

如果
date
命令可以处理日期,我会支持
date
命令

kent$  date -d"Fri May 3 13:50:37 2013" +"%a%e %b %Y %T"                             │       %M     minute (00..59)
Fri 3 May 2013 13:50:37 

如果
date
命令可以用于日期处理,我将使用
date
命令

kent$  date -d"Fri May 3 13:50:37 2013" +"%a%e %b %Y %T"                             │       %M     minute (00..59)
Fri 3 May 2013 13:50:37 

使用正则表达式中的反向引用并匹配子模式

sed -E 's/^(...) (...) ([0-9]+)(.*)([0-9]{4})$/\1 \3 \2 \5 \4/'

使用正则表达式中的反向引用并匹配子模式

sed -E 's/^(...) (...) ([0-9]+)(.*)([0-9]{4})$/\1 \3 \2 \5 \4/'
这可能适用于您(GNU-sed):

这可能适用于您(GNU-sed):



欢迎来到SO。为了解决这个问题,你尝试了什么?现在我已经用c编码完成了,这是我的工作,但我需要优化我的代码,并希望它成为一行:)请帮助我@devnull…,欢迎使用。为了解决这个问题,你尝试了什么?现在我已经通过c编码完成了,这是我的工作,但我需要优化我的代码,希望它成为一个单行:)请帮助我@devnull…我很抱歉地问,但我没有关于sed的硬经验。唯一的原因是我的linux(在嵌入式系统上)只支持sed。我很抱歉问,但是你如何传递这个论点。请从shell或脚本两种方式告诉我。对于不适,我感到抱歉,但真的非常感谢你的帮助。ThnxI很抱歉问,但我没有任何关于sed的经验。唯一的原因是我拥有的linux(在嵌入式系统上)仅支持sed。我很抱歉问你如何传递参数。请从shell或脚本两种方式进行说明。对于不适,我深表歉意,但真的非常感谢您的帮助。ThnxI无法坚持使用日期,因为它是嵌入式系统。我拥有的时间字符串位于通过ctime。那么,我们怎样才能用awk或sed来实现呢?我计划用命令本身传递字符串,也就是说,简而言之,如果我有一个字符串“12345”。如何使用sed或awk,使sed-option命令“12345”,使输出为“123454”.由于我们的系统限制,我无法坚持使用日期,因为它是嵌入式系统。我拥有的时间字符串位于通过ctime获得的c程序中。因此,我们如何使用awk或sed来准确地执行它。我计划使用命令本身传递字符串,即简言之,如果我有一个字符串“1 2 3 4 5”。如何使用sed或awk,使sed-option命令“1 2 3 4 5”,使输出为“1 3 2 5 4”。使用sed是否可能,因为我有一个非常紧张的资源系统,只有sed。当然可以使用
sed
,但这并不适合该工作。为什么你在对这个答案的评论中说你没有
awk
,而在@Kent answer!的评论中说你有
awk
!?我的错误,但我现在也知道了这个事实。。。我真的没有一个awk在我的busybox配置中…@sudo\u OIf一个系统有
sed
它很可能也有
awk
。它不是我的朋友。。!!!为了简化系统,我们从busybox配置中去掉了很多东西(包括awk),使用sed是否可行,因为我的资源系统非常紧张,只有sed。当然可以使用
sed
,但这并不适合这项工作。为什么你在对这个答案的评论中说你没有
awk
,而在@Kent answer!的评论中说你有
awk
!?我的错误,但我现在也知道了这个事实。。。我真的没有一个awk在我的busybox配置中…@sudo\u OIf一个系统有
sed
它很可能也有
awk
。它不是我的朋友。。!!!为了使系统更轻,我们已经从我们的busybox配置中删除了许多内容。(包括awk)谢谢,但我还需要交换最后两个字,可以做什么,我可能看起来很愚蠢,我没有太多的awk经验,但迫切需要实现这一点。。。!!最后两个论点,即时间和年份。?谢谢,但我也需要交换最后两个词,可以做什么,我可能会显得很愚蠢认真我没有太多的awk经验,但迫切需要实现这一点。。。!!最后两个论点,即时间和年份。?