2013-12-17 17 views
1

我有一個日誌,我需要不時地grep。 問題是,輸入可能不總是正確的,並且當用戶輸入開始時間時,這是不正確的,那麼什麼都不會被grepped。使用sed從文件開始擦除到給定的參數

我怎樣才能實現一個檢查,當沒有開始時間設置,然後從第一行grepped文件?

sed -n '/1217-1337:37/,/&&&&-&&&&:&&/p' file.txt是我原來的命令

&&&&-&&&&:&&讓我的grep,直到文件的末尾,但需要改變的起點。

row 1: 1111-1111:11 text 
row 2: 1111-1111:11 text 
row 3: 1111-1111:11 text 

所需的輸出,當用戶輸入sed -n '/1017-1337:37/,/&&&&-&&&&:&&/p' file.txt

的是,如果我明白你的任務右側的所有3行返回給用戶提前

+0

您的問題對我來說可能並不完全清楚,也許您可​​以提供一些示例輸入和所需輸出。 – hetepeperfan

+0

更新了問題 – user3110351

+0

仍然不清楚,給出了一個更大的好壞入口樣本和預期產出樣本。輸入錯誤的輸入可能以任何形式存在,你說只有「壞」。標準是在這種情況下只有「沒有數字」時間「格式」或「空值」或其他 – NeronLeVelu

回答

0

感謝:

if -z "$START_TIME" 
then 
    sed -n '1,/&&&&-&&&&:&&/p' file.txt 
else 
    sed -n "/$START_TIME/,/&&&&-&&&&:&&/p" file.txt 
fi 
+0

謝謝,這工作:)對不起,不批准答案更快 – user3110351

相關問題