2016-03-01 150 views
0

我有這條線在我的文本文件:正則表達式grep命令爲Linux

[Tue Mar 01 21:28:58.377941 2016] [evasive20:error] [pid 5098] [client 192.168.163.1:3978] client denied by server configuration: /var/www/html/test.php 

我用grep這句話用命令

grep "evasive20" 

其結果是,整個句子被顯示。但我想輸出包含「evasive20」,並在他們刪除[pid 5098]一部分,因此,其結果表現將是行:

[Tue Mar 01 21:28:58.377941 2016] [evasive20:error] [client 192.168.163.1:3978] client denied by server configuration: /var/www/html/test.php 

這有可能在一個單一的命令?或者有什麼方法可以讓我對句子的前半部分和後半部分進行研究(沒有[pid xxxx])?

回答

0

當然,sed既可以找到你需要的線(S)和修改:

$ sed '/evasive20/ s/\[pid [0-9]*\] //' <your-file.log