检测文件修改时间 (awk 使用自定…

本文介绍如何在bash脚本中使用awk设置变量,并通过读取配置文件来检查日志文件的更新时间,包括如何使用awk进行多域分隔符的处理及输出时间间隔比较。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://topic.youkuaiyun.com/t/20041018/14/3466538.html#

  第二種把變數的設定傳進   awk   的方式是利用   awk   當中一個無文件說明的  
  功能,它允許您從命令列透過「假造的檔案名稱」來設定變數,例如:  
     who   |   awk   '$1   ==   user   {   print   $2   }'   user="$USER"   -   (3)  

#!/bin/bash
#检查日志更新时间
#创建日期:2010年4月16日 16:41:34
#Written by linl

#读取配置文件
FILE_NAME=`cat moniter.conf | grep filename | awk '{print $3}'`
CHECK_TIME=`cat moniter.conf | grep checktime | awk '{print $3}'`
FILE_PATH=`cat moniter.conf | grep filepath | awk '{print $3}'`
echo " 配置文件读取结束"

cd $FILE_PATH

#获取指定文件的最后修改时间
FILE_MODIFY_TIME=`stat $FILE_NAME|grep Modify |awk -F. '{print $1}'|sed -e 's/[^ ]* //'`

echo "文件名:" $FILE_NAME "修改时间:" $FILE_MODIFY_TIME "时间间隔:" $CHECK_TIME

echo $FILE_MODIFY_TIME |awk  '{gsub(/[:-]/," ");if ( systime()-mktime($0) < time ) print "yes";else print "no"}' time="$CHECK_TIME"

--------------------------------------------------------------------------------------------

问:awk多个域分隔符,可以含有“["或者”]"么?

答:awk -F"[][:@#, ]" inputfile
http://club.topsage.com/thread-508816-1-1.html


awk -F"[][]" '{if($6==1) print $0}' test.txt

wc 命令显示 文件中的行数、字数和字节数
http://baike.baidu.com/view/24408.htm#4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值