Script的語法問題 - Linux

Hamiltion avatar
By Hamiltion
at 2017-09-04T12:14

Table of Contents

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
這樣的執行方式?

感謝

--
Tags: Linux

All Comments

Margaret avatar
By Margaret
at 2017-09-09T06:18
你最後一行打成 FILE_NAKE
Yedda avatar
By Yedda
at 2017-09-09T17:14
還有第二個 grep 為什麼有兩個參數?
你是要從 pipe grep 還是從檔案 grep ?
Necoo avatar
By Necoo
at 2017-09-13T07:34
我需要從檔案grep關鍵字, 需要用and方式
我想參考板上2008的一篇文章
James avatar
By James
at 2017-09-15T20:35
是採用ps -aux | awk '/1234/ && /5678/'去操作
我有嘗試寫進script去執行, 一直都沒有成功
Dinah avatar
By Dinah
at 2017-09-20T03:03
如果是 and 後面也寫錯順序不是?
Margaret avatar
By Margaret
at 2017-09-23T22:20
反正你要查檔案裡面有 "$ERROR_LOG_DATE" 跟 "Set....r"
Enid avatar
By Enid
at 2017-09-27T13:11
那就 grep "$ERROR_LOG_DATE" $FILE_NAME |grep "S..t"
不就好了
如果你要兩種東西其一存在就 grep 出來
Hedy avatar
By Hedy
at 2017-09-28T22:18
那就 cat $FILE_NAME|egrep "S...r|$ERROR_LOG_DATE"
Queena avatar
By Queena
at 2017-10-01T20:53
不過老實說 我看不懂你的敘述就是了
Victoria avatar
By Victoria
at 2017-10-06T18:36
如果有多個要比對,要 grep -e 1234 -e 5678
但 grep 是 or ,二條件其一成立就成立,你用 awk
Jake avatar
By Jake
at 2017-10-08T07:39
看要用 /1234/ || /5678/ 或 /1234/ && /5678/ 都可
Michael avatar
By Michael
at 2017-10-09T22:03
感謝資訊的提供. 我grep的方式是and 兩個條件都要成立
感謝提供資訊, 我可以再試試看

一串linux 語法問題

Belly avatar
By Belly
at 2017-09-03T09:36
想請問這一段指令的意思 不太了解andgt;左邊空白 及 andlt;andlt;END的意思 cat andgt; ~/bin/firefox andlt;andlt;END - ...

manjaro 安裝實錄

John avatar
By John
at 2017-09-03T09:34
推荐大家用看看 Manjaro Linux 的 deepin community 版本, 應該是最好用的 Linux Distribution! 寫了一篇簡略設定(這裡我是先裝XFCE再改成deepin, 其實可以直接安裝deepin版本), http://www.twpda.com/2017/08/man ...

git log 保留部份最新

Hardy avatar
By Hardy
at 2017-09-03T01:28
我從有從github 抓了一包程式 , 發現 .git 太大 我想把保留最新的20筆 git commit 資料 請問要怎麼做才可以只保留最新20筆 抱歉我講一下我推到bitbucket 步驟 1. git clone https://github.com/xxxx/xxxx.git --depth 2 ...

Re: 雙系統時間跑掉以及launcher與圖示包問題

Margaret avatar
By Margaret
at 2017-09-02T18:04
※ 引述《sphsu (孤獨的飄)》之銘言: : 雙系統:ubuntu 16.04 + win10 1703 : 兩個系統分別安裝在HDD、SSD上, : 安裝的時候,是裝好win10以後,在SSD沒有連接的情況下安裝ubuntu到HDD上, : 透過BIOS設定的開機順序來決定進哪個系統。 : 目前遇到的問 ...

雙系統時間跑掉以及launcher與圖示包問題

Mary avatar
By Mary
at 2017-09-02T17:18
雙系統:ubuntu 16.04 + win10 1703 兩個系統分別安裝在HDD、SSD上, 安裝的時候,是裝好win10以後,在SSD沒有連接的情況下安裝ubuntu到HDD上, 透過BIOS設定的開機順序來決定進哪個系統。 目前遇到的問題是: 進入ubuntu後,下次切換到window,windo ...