2017-04-03 61 views
0

我找過有人寫了一些的bash腳本誰曾經在我的公司上班,並想了解下面的sed命令:瞭解SED -i「/保持謝暉/ d」

LOG_DIR=/somelocation 
ERROR_LOG="batch_errors_"$*".log" 

# remove any non genuine error fields 
sed -i '/Keep Error Fields/d' $LOG_DIR/$ERROR_LOG 
if [ -s $LOG_DIR/$ERROR_LOG ] 
then 
#DO SOMETHING 
fi 

腳本的目的是查看日誌文件列表,並且在任何日誌中都有ERROR字樣的地方添加到ERROR_LOG中。我相信上述意圖是要刪除任何不是「真正」錯誤結果的條目。

我不明白'/Keep Error Fields/d'在做什麼或者它是如何將這些錯誤識別爲非真貨的。這是什麼內置到sed命令?

在此先感謝您的幫助。

+1

''/ Keep Error Fields/d''表示刪除與特定搜索字符串匹配的行......您可以在[sed doc](https://stackoverflow.com/documentation/sed/3120)上找到更多相關示例/ address-and-address-range#t = 201704031448441117151) – Sundeep

+0

好的 - 太棒了,我認爲這是做了一些更復雜的事情! –

+0

@Sundeep請做出回答,我不想從列表中選擇「答案:0」。 – Yunnosch

回答

1

'/Keep Error Fields/d'意味着刪除匹配特定的搜索字符串...

報價森迪普•做出一個漂亮的Q/A對,與他的許可。