awk如何使用shell中的命令?


想从apache的访问日志里面提取时间字段,但是apache日志里面时间的格式是04/Aug/2012:14:22:27 +0800
这种格式的,但是我想把这个日期转换成2012-08-04 14:22:27的格式,在shell中好实现,但是在awk里面怎么使用shell的date方法?

awk shell

hime. 12 years, 5 months ago

awk可以用getline或system来调用shell的命令

   
  echo Sun Jan 03 23:54:45 2010|awk '{system("date -d \""$0"\" +%Y%m%d")}'
 

先把日志里的时间处理一下,比如:

   
  echo "04/Aug/2012"|sed -r 's#(..)/(...)/(.*)#\2 \1 \3#' | awk '{system("date -d \""$0"\" +%F")}'
 

雅音宫羽 answered 12 years, 5 months ago

Your Answer