shell从一行文件中获取两列值

前端之家收集整理的这篇文章主要介绍了shell从一行文件中获取两列值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. 日志文件内容如下:
    logid=2210608107 worker_id=140610281404160 optime=1452598610.631276 msg=service+not+found+in+share+memory service=Redis_doc_push
  2. 通过awk获取制定的列后输出,缺点是如果日志打印的格式不带空格,则不能使用
    cat xxx.log | grep -oP "logid=\d+.*service=\w+" | awk -F' ' '{print $1,$NF}'
  3. 用正则表达式捕获组,用sed将整行替换为两个组的值
    cat xxx.log | sed -r "s/.*?logid=([0-9]+).*?service=(\w+).*?/\1,\2/"
  4. @H_404_16@

猜你在找的Bash相关文章