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/"
相關文章
相關標籤/搜索