- 日志文件内容如下:
logid=2210608107 worker_id=140610281404160 optime=1452598610.631276 msg=service+not+found+in+share+memory service=Redis_doc_push
- 通过awk获取制定的列后输出,缺点是如果日志打印的格式不带空格,则不能使用
cat xxx.log | grep -oP "logid=\d+.*service=\w+" | awk -F' ' '{print $1,$NF}'
- 用正则表达式捕获组,用sed将整行替换为两个组的值
cat xxx.log | sed -r "s/.*?logid=([0-9]+).*?service=(\w+).*?/\1,\2/"