‘壹’ linux追加内容时候添加时间戳
标准错误输出无法直接通过管道传递给awk,用个脚本做:
#!/bin/sh
exec 4>&1
# Print timestamp on lines with word "Error"
#php 1.php 2>&1 >&4 1>/dev/null|awk '{if($0 ~/Error/) printf("===%s\t----> ", strftime("%F %H:%M:%S")); printf("%s\n", $0);}'
# Print timestamp on every line.
php 1.php 2>&1 >&4 1>/dev/null|awk '{printf("===%s\t----> %s\n", strftime("%F %H:%M:%S"), $0);}'
exec 4>&-
‘贰’ linux时间戳命令
date指令相关用法示例
date 用法: date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
直接输入date
%H : 小时(00..23)
%I : 小时(01..12)
%k : 小时(0..23)
%l : 小时(1..12)
%M : 分钟(00..59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到当前为为止的秒数
%S : 秒(00..61)
%T : 直接显示时间 (24 小时制)
‘叁’ linux 取当前时间前2小时时间
可以用命令 date -d -2hour +%T得到前一小时的时间,关键是“-2hour”。
‘肆’ linux怎么将时间戳转换为时间
可以用date的-d参数,致于函数可以自己写一个: date命令可以将标准的时间格式转换成unix时间戳 例如: 12# date -d '2014-11-24 13:10' +%s1416805800同样也可以使用date命令将unix时间戳转换成标准的时间格式 例如: 12# date -d '1970-01-01 UTC 1416805800 seconds'Mon Nov 24 13:10:00 CST 2014
‘伍’ LINUX下怎样更新文件夹下所有文件的时间戳
在Linux中,文件没有“创建时间”这个说法。Linux中的文件的时间属性只有三个:atime(Access time)、mtime(Modified time)、ctime(Change time)。不过,有时有人把ctime理解为create time(创建时间),这是不对的,为什么呢?因为,我们知道一个文件的创建时间只有一次,按这个理论,创建时间是不允许修改的,即一个文件一旦创建,它的ctime值就固定不变;但事实呢?是可以改变的。 atime指用户上次访问该文件(打开文件查看其中的内容)时的时间,只要一个用户访问该文件(不管以什么方式),atime的值都会改变,比如:修改一个文件的内容,必然要先打开文件,然后才会修改其中的内容,所以,修改一个文件时,不但会更新一个文件的mtime值,也会更新atime的值。 mtime指用户上次修改该文件中的内容的时间,只要用户修改该文件中的内容,那么mtime的值就会被更新。 ctime指该文件的属性上次被改变时的时间。要想查看文件的属性,可以通过ls命令查看,比如:ls -l。例如:你修改该文件的权限了或者改变该文件的硬链接数了,ctime的值都会被更新。但是有一点,ctime的值更新,并不代表atime和mtime的值也更新,比如:你修改文件的权限,但并不代表你访问或修改了文件中的内容。 在做一些相应的操作时,文件的atime、mtime、ctime的值都会自动被更新。 正如前面所说,这些值是可以改变的,所以,我们可以通过touch命令来修改这三个属性的值。其实,touch并不是用来创建一个新的、空的文件的,而是用来修改这三个属性的值的。但为什么创建一个新的、空的文件呢?这是touch附带的一个功能,原因是:如果你提供的目标文件参数并不存在的话,那么touch就会出现错误,为了防止这种情况出现,touch命令就会默认创建一个所提供的目标文件参数;其实其他命令也是如此,有些命令,如果用户没有为它提供参数的话,它就会从标准输入设备读取参数,即让用户从标准输入设备输入参数,这样的命令比比皆是。 要想修改一个文件下的所有文件的时间属性,可以用touch命令,提供一个要修改时间属性类型的参数和时间值,然后跟着该文件夹下的所有文件,引用方式是使用 *(星号),它可以匹配一个文件夹下的所有文件。
‘陆’ linux awk 将文件中时间转换为时间戳
可以使用awk中的内置函数mktime()
awk'{gsub("-","",$1);printmktime($1"000")}'a.TXT
它会把第一列的字符串 2016-09-26当作 2016-09-26 0:0:0的时间转化为时间戳,如果不符合时间日期格式的话,转化后是-1,比如上面的“NULL"字符串,你可以单独做处理。