小编Kei*_*ron的帖子

使用GAWK的CSV文件中的时间戳到Epoch

希望使用GAWK将人类可读时间戳转换为CSV文件中的纪元/ Unix时间,以准备加载到MySQL数据库中.

数据示例:

{null};2013-11-26;Text & Device;Location;/file/path/to/;Tuesday, November 26 12:17 PM;1;1385845647
Run Code Online (Sandbox Code Playgroud)

希望在11月26日星期二下午12:17进入第6列,并转换为纪元时间进行存储.显示的所有时间都是EST格式.我意识到AWK是这个的工具,但似乎无法构建命令.目前有:

cat FILE_IN.CSV | awk 'BEGIN {FS=OFS=";"}{$6=strftime("%s")} {print}' 
Run Code Online (Sandbox Code Playgroud)

但是这会返回:

{null};2013-11-26;Text & Device;Location;/file/path/to/;1385848848;1;1385845647
Run Code Online (Sandbox Code Playgroud)

据推测,这意味着我正在调用当前的纪元时间(1385848848是执行时的当前纪元)而不是要求strftime转换字符串; 但我无法想象另一种方法.

gawk/ strftime将现有时间戳转换为纪元的正确语法是什么?

编辑:这个问题似乎与我如何在另一个命令中使用awk的输出松散相关

csv awk epoch gawk

6
推荐指数
1
解决办法
7134
查看次数

在while循环中检查单引号的BASH字符串?

希望检查字符串是否不包含以下语法中的单引号,'text'(尽管它也可能是 'text','text','text')但无法正确转义引号允许打开一个while循环。代码:

while [[ -z "$projects" ]] || [[ "$projects" =~ *"\'" ]]; do
    <reprompt user, read var, and reset variable>
done
Run Code Online (Sandbox Code Playgroud)

以上是我梦寐以求的最好的,但它只寻找结尾 ',甚至不能正常工作,因为使用“a”进行测试不会导致进入循环。当单引号起作用时,我应该如何测试格式错误的用户字符串?

bash

2
推荐指数
1
解决办法
538
查看次数

标签 统计

awk ×1

bash ×1

csv ×1

epoch ×1

gawk ×1