文本内容时间格式转化问题

weixin_37907831 2017-06-08 11:00:36
请教一下,我有一个文件,里面很多数据,其中一个字段是关于时间的,现在我需要将这个字段格式改一下,改为与之对应的
yyyymmddhhmiss,该怎么办呢?


如下:
[root@localhost mail]# head -n 5 userInfo.txt
806@@administrator@Q21jY0FkbWluQDAyMTU=@00@1@administrator@Jan 4 2017 5:25:59:000PM@administrator@5@1@@1@@null-null@1@0@Feb 15 2017 4:52:24:000PM@3000@May 4 2025 4:52:24:000PM@Q21jY0FkbWluQDA0MTE=,Q21jY0FkbWluQDA3MDQ=,Q21jY0FkbWluQDA5MjY=,Q21jY0FkbWluQDEyMTY=,Q21jY0FkbWluQDAyMTU=
1862@03003320@yangshuang@TWlrZTE0bGMj@00@28@ @Jul 31 2016 7:23:19:000PM@administrator@94@1@13943015558@1@yangshuang@chinamobile.com@0.0.0.0-255.255.255.255@1@0@Dec 4 2014 11:10:46:486PM@3010@Mar 2 2023 11:10:46:000PM@TWlrZTE0bGMj
1863@03003308@zhangming@Um1zMTIzIUAj@00@28@ @Jul 31 2016 7:23:17:000PM@administrator@94@1@13811285615@1@zhangminggc@chinamobile.com@0.0.0.0-255.255.255.255@1@0@Aug 6 2015 5:16:00:000PM@3010@Nov 2 2023 5:16:00:000PM@Q21jYzEyMzQh,Q21jY1hhQDAzMDY=,Um1zMTIzIUAj
1864@@jiankong01@Q21jY0AwNzMx@00@29@ @Apr 20 2017 10:21:38:000AM@administrator@94@0@@1@@null-null@0@0@Jul 31 2016 5:40:48:000AM@3000@Oct 17 2024 5:40:48:000AM@Q21jY0AxMDEy,Q21jY0AxMDEw,Q21jY0AxMDEwMA==,SmlhbmtvbmcxMjMhQCM=,Q21jY0AwNzMx
1865@00353029@shaoyan@WHlqeTQxMjUwMSE=@00@30@ @Jul 31 2016 7:23:11:000PM@administrator@94@0@13811230767@0@shaoyan@chinamobile.com@0.0.0.0-255.255.255.255@0@0@Apr 28 2016 3:01:51:000PM@3000@Jul 15 2024 3:01:51:000PM@Q21jYzEyMyE=,WFlqeTQxMjUwMS4=,Q21jYzEyMyM=,eFlqeTQxMjUwMS4=,WHlqeTQxMjUwMSE=
[root@localhost mail]# head -n 5 userInfo.txt|awk -F "@" '{print $8}'
Jan 4 2017 5:25:59:000PM
Jul 31 2016 7:23:19:000PM
Jul 31 2016 7:23:17:000PM
Apr 20 2017 10:21:38:000AM
Jul 31 2016 7:23:11:000PM
...全文
784 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_37907831 2018-01-28
  • 打赏
  • 举报
回复
引用 4 楼 ipqtjmqj的回复:

16:16:22 ☻  cat ./conv 
#!/bin/sh
year=$3
month=$2
date_name=$1
time=$4

case $date_name in
	Jan) date=1;;
	Feb) date=2;;
	Mar) date=3;;
	Apr) date=4;;
	May) date=5;;
	Jun) date=6;;
	Jul) date=7;;
	Aug) date=8;;
	Sep) date=9;;
	Oct) date=10;;
	Nov) date=11;;
	Dec) date=12;;
esac

hour_12=`echo $time | cut -d : -f 1`
minute=`echo $time | cut -d : -f 2`
second=`echo $time | cut -d : -f 3`
echo $time | grep PM > /dev/null
if [ $? -eq '0' ]
then
	hour=`expr $hour_12 + 12`
else
	hour=$hour_12
fi

printf %04d%02d%02d%02d%02d%02d $year $month $date $hour $minute $second
echo
████████████████▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░                
16:16:39 ☻  cat testfile 
Jan  4 2017  5:25:59:000PM
Jul 31 2016  7:23:19:000PM
Jul 31 2016  7:23:17:000PM
Apr 20 2017 10:21:38:000AM
Jul 31 2016  7:23:11:000PM
████████████████▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░                
16:17:46 ☻  awk '{system("./conv " $0)}' testfile 
20170401172559
20163107192319
20163107192317
20172004102138
20163107192311


谢谢您了,后来没人回复我就没再关注,如今才看到,麻烦您了!!
ipqtjmqj 2017-06-15
  • 打赏
  • 举报
回复

16:16:22 ☻  cat ./conv 
#!/bin/sh
year=$3
month=$2
date_name=$1
time=$4

case $date_name in
	Jan) date=1;;
	Feb) date=2;;
	Mar) date=3;;
	Apr) date=4;;
	May) date=5;;
	Jun) date=6;;
	Jul) date=7;;
	Aug) date=8;;
	Sep) date=9;;
	Oct) date=10;;
	Nov) date=11;;
	Dec) date=12;;
esac

hour_12=`echo $time | cut -d : -f 1`
minute=`echo $time | cut -d : -f 2`
second=`echo $time | cut -d : -f 3`
echo $time | grep PM > /dev/null
if [ $? -eq '0' ]
then
	hour=`expr $hour_12 + 12`
else
	hour=$hour_12
fi

printf %04d%02d%02d%02d%02d%02d $year $month $date $hour $minute $second
echo
████████████████▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░                
16:16:39 ☻  cat testfile 
Jan  4 2017  5:25:59:000PM
Jul 31 2016  7:23:19:000PM
Jul 31 2016  7:23:17:000PM
Apr 20 2017 10:21:38:000AM
Jul 31 2016  7:23:11:000PM
████████████████▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░                
16:17:46 ☻  awk '{system("./conv " $0)}' testfile 
20170401172559
20163107192319
20163107192317
20172004102138
20163107192311


ipqtjmqj 2017-06-15
  • 打赏
  • 举报
回复
我想了下,最简单的办法,首先写个shell脚本处理每一行,然后用awk的内置函数system调用shell脚本处理
ipqtjmqj 2017-06-15
  • 打赏
  • 举报
回复
引用 1 楼 weixin_37907831 的回复:
第一次发帖,多多指教哈
网上找一个,找不到就自己动手写一个
weixin_37907831 2017-06-08
  • 打赏
  • 举报
回复
第一次发帖,多多指教哈

19,610

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧