我的文本文件中有这一行:
[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 "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]
)? 最佳答案
当然,sed
可以找到需要的行并对其进行修改:
$ sed '/evasive20/ s/\[pid [0-9]*\] //' <your-file.log
关于linux - Linux的grep命令的正则表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35727483/