免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1772 | 回复: 4

[文本处理] 针对某一列调用系统命令 [复制链接]

论坛徽章:
1
戌狗
日期:2014-06-09 14:33:38
发表于 2019-02-13 17:56 |显示全部楼层
文本示例: 第一列是时间戳,第二列是正常时间
1549905362 [12/Feb/2019:02:38:05
1549903117 [12/Feb/2019:02:38:09
1549902392 [12/Feb/2019:02:38:10


希望对第一列进行转换成普通时间如下:
Tue Feb 12 01:16:02 CST 2019 [12/Feb/2019:02:38:05
Tue Feb 12 00:38:37 CST 2019 [12/Feb/2019:02:38:09
Tue Feb 12 00:26:32 CST 2019 [12/Feb/2019:02:38:10


自己用cmd 一直会换行。 求教实现方式:

# head -n 3 /tmp/time22 |awk '{cmd="date -d @"$1; print system(cmd),$2 }' |more
Tue Feb 12 01:16:02 CST 2019
0 [12/Feb/2019:02:38:05
Tue Feb 12 00:38:37 CST 2019
0 [12/Feb/2019:02:38:09
Tue Feb 12 00:26:32 CST 2019
0 [12/Feb/2019:02:38:10


论坛徽章:
0
发表于 2019-02-13 18:33 |显示全部楼层
本帖最后由 jzsjm1002 于 2019-02-13 23:26 编辑
  1. cat a00.xml
  2. 1549905362 [12/Feb/2019:02:38:05
  3. 1549903117 [12/Feb/2019:02:38:09
  4. 1549902392 [12/Feb/2019:02:38:10

  5. sed -r 'h;s/([0-9]{10}).*/date -d @\1/e;G;s/[0-9]{10}|\n//g' a00.xml
  6. Tue Feb 12 01:16:02 CST 2019 [12/Feb/2019:02:38:05
  7. Tue Feb 12 00:38:37 CST 2019 [12/Feb/2019:02:38:09
  8. Tue Feb 12 00:26:32 CST 2019 [12/Feb/2019:02:38:10
复制代码

论坛徽章:
8
2016科比退役纪念章
日期:2018-10-24 08:24:0115-16赛季CBA联赛之北控
日期:2019-03-12 14:34:562016科比退役纪念章
日期:2019-04-01 10:33:0915-16赛季CBA联赛之山东
日期:2019-04-17 12:46:3215-16赛季CBA联赛之广夏
日期:2019-05-09 16:40:4015-16赛季CBA联赛之广夏
日期:2019-10-10 15:33:4015-16赛季CBA联赛之辽宁
日期:2019-10-15 08:37:0615-16赛季CBA联赛之北控
日期:2021-03-30 15:53:34
发表于 2019-02-13 22:33 |显示全部楼层
  1. awk '{"date -d @"$1 | getline a;print a,$2}' file.txt
复制代码

论坛徽章:
1
戌狗
日期:2014-06-09 14:33:38
发表于 2019-02-14 10:32 |显示全部楼层
回复 3# cfwyy
谢谢

论坛徽章:
0
发表于 2019-02-15 15:28 |显示全部楼层
时间对象--》时间戳。
  1. [int][double]::Parse((Get-Date (get-date).touniversaltime() -UFormat %s))

  2. $a = New-Object system.DateTimeOffset (get-date)
  3. $a.ToUnixTimeSeconds()
复制代码




时间戳--》时间对象
  1. Function get-epochDate ($epochDate)
  2. {
  3.     [timezone]::CurrentTimeZone.ToLocalTime(([datetime]'1/1/1970').AddSeconds($epochDate))
  4. }
  5. get-epochDate 1496993325
复制代码



java时间戳--》.net,powershell时间对象
  1. ([datetime]'1/1/1970').AddMilliseconds(1542178523143)  
复制代码



PS A:\pscode> get-epochDate 1549905362
2019年2月12日 1:16:02
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP