[问题]Script的语法问题

楼主: rexsony (雷克斯索尼)   2017-09-04 12:14:19
ERROR_LOG_DATE=$(date '+%b %d %Y %H:%M' -d' -1 min')
ERROR_LOG_DATE_2=$(date '+%Y%m%d%H%M%S')
Alarm_NAME="VMS"
Alarm_DEVIECS="VMSGW"
Alarm_Local="JHO"
Alarm_Status="Discover Mode"
Alarm_Set="Set"
ISSUE_Status="Critical"
Alarm_NUMBER="DiscoverMode_000"
Alarm_TIME=$(date '+%Y/%m/%d %H:%M:%S')
grep "$ERROR_LOG_DATE" $FILE_NAME | grep $FILE_NAKE "SetModeToDiscover"
我在机器上开始建立Script的变量并执行sh -x 去追踪script的结果
+ ERROR_DIR=/opt/hwacom/alarm/tosplunk
+ FILE_NAME=/opt/dialogic/log/maintenance_SS7Red.pid-rex.log
++ date '+%b %d %Y %H:%M' '-d -1 min'
+ ERROR_LOG_DATE='Sep 04 2017 12:05'
++ date +%Y%m%d%H%M%S
+ ERROR_LOG_DATE_2=20170904120639
+ Alarm_NAME=VMS
+ Alarm_DEVIECS=VMSGW
+ Alarm_Local=JHO
+ Alarm_Status='Discover Mode'
+ Alarm_Set=Set
+ ISSUE_Status=Critical
+ Alarm_NUMBER=DiscoverMode_000
++ date '+%Y/%m/%d %H:%M:%S'
+ Alarm_TIME='2017/09/04 12:06:39'
+ grep SetModeToDiscover
+ grep 'Sep 04 2017 12:05' /opt/dialogic/log/maintenance_SS7Red.pid-rex.log
我想请问一下在最后两行的结果
通常在终端的指令会打成 grep "KEYWORD" + FILE NAME | grep "KEYWORD" + FILE NAME
系统会打印出符合这一串结果的值
但是我用追踪的去看, 好像变成是分两次执行
我在最后的语法应该要怎么修正才能像
grpe "KEYWORD" + FILE NAME | grep "KEYWORD" + FILE NAME
这样的执行方式?
感谢
作者: hijkxyzuw (i,j,k) ×(x,y,z)   2017-09-04 12:28:00
你最后一行打成 FILE_NAKE还有第二个 grep 为什么有两个参数?你是要从 pipe grep 还是从档案 grep ?
楼主: rexsony (雷克斯索尼)   2017-09-04 12:35:00
我需要从档案grep关键字, 需要用and方式我想参考板上2008的一篇文章是采用ps -aux | awk '/1234/ && /5678/'去操作我有尝试写进script去执行, 一直都没有成功
作者: chang505 (眼线)   2017-09-04 13:57:00
如果是 and 后面也写错顺序不是?反正你要查档案里面有 "$ERROR_LOG_DATE" 跟 "Set....r"那就 grep "$ERROR_LOG_DATE" $FILE_NAME |grep "S..t"不就好了如果你要两种东西其一存在就 grep 出来那就 cat $FILE_NAME|egrep "S...r|$ERROR_LOG_DATE"不过老实说 我看不懂你的叙述就是了
作者: hijkxyzuw (i,j,k) ×(x,y,z)   2017-09-04 14:09:00
如果有多个要比对,要 grep -e 1234 -e 5678但 grep 是 or ,二条件其一成立就成立,你用 awk看要用 /1234/ || /5678/ 或 /1234/ && /5678/ 都可
楼主: rexsony (雷克斯索尼)   2017-09-04 15:55:00
感谢资讯的提供. 我grep的方式是and 两个条件都要成立感谢提供资讯, 我可以再试试看

Links booklink

Contact Us: admin [ a t ] ucptt.com