2016-11-10 81 views
1

我有一個文件中的字符串是這樣的:grep命令目前在文件中的每串子 - shell腳本

47:2016-10-25 20:24:21 - [HSM ]Handle Identity Request. Send Identity Response. timeout: 1550s 
301:2016-10-26 08:01:01 - [HSM ]Handle Identity Request. Send Identity Response. timeout: 1550s 

我有一個輸入字符串作爲日期「2016年10月25日」,而另一個輸入字符串作爲「處理身份請求,發送身份響應」。

我想找到沒有。存在於文件中的字符串。我試過這個:

total_attempt=$(grep -c "$i\|\[HSM \]Handle Identity Request. Send 
    Identity Response. timeout: 1550s" $file_name 

我相信|在上面的語法不會工作。

注:$ i爲日期作爲輸入

輸出應該是這樣的:

2016-10-25: = attempts = 2 

但是,這是行不通的。

Sed命令將有所幫助,但我不知道如何?

回答

0

你可以試試這個;

#!/bin/bash 
file_name=yourFile 
i="2016-10-25" 
total_attempt=$(grep -c "$i\|\[HSM \]Handle Identity Request. Send Identity Response. timeout: 1550s" $file_name) 
echo $total_attempt 
0

對於|工作,你需要打開擴展正則表達式,即也-E開關傳遞給grep的。