繁体   English   中英

如何在unix日志文件输出中分割行

[英]how to split lines in unix log file output

我希望能够从日志文件中解析日期和时间。 目前,它们的格式如下:

“ 02 / Jun / 2009:14:38:50”,但我想使用Linux命令行中的可用内容将它们分为不同的列,以便输出结果如下:

“ 2009年6月2日”“ 14:38:50”

有人可以说明如何做到这一点吗?

问候

如果没有其他格式的行,克里斯的答案是最好的。 如果您只需要影响该特定格式的行,请执行以下操作:

cat log | sed -e 's/"\([^:]*\):\([^"]*\)"/"\1" "\2"/'

如果这就是每一行的全部内容,则可能是:

cat file.txt | sed -e 's/:/" "/'

纯重击:

while read line ; do echo ${line/:/\" \"}; done < logfile

如果替换成功,awk的sub()函数将返回1,因此:

cat file.txt | awk 'sub(/:/,"\" \"")'

GNU awk可以使用gensub()函数,因此这是下面的反向引用示例。

cat file.txt | gawk '$0=gensub(/("[^:]*):([^"]*")/,"\\1\" \"\\2",1)'

查找正则表达式“&:&:&:&”并在第一个冒号之前和之后分开的代码。 (&表示任意数量的任何字符)。

var str log
cat "logfile" > $log
while ( { sen -r "^&:&:&:&^" $log } > 0 )
do
    var str datetime, date, time
    stex -r "^&:&:&:&^" $log > $datetime
    stex -p "]^:^" $datetime > $date    # String before the first : is date.
    stex -p "^:^[" $datetime > $time    # String after the first : is time.
    echo $date "\t" $time
done

要尝试,您可以下载biterscripting。 使用Google或安装说明位于http://www.biterscripting.com

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM