Linux中 cat查询文件指定内容-并输入到指定文件内


常用:

  ① cat xxx.log | grep -C 20 "查询关键字"

        grep -E '1805|1905' CloudPayment.log > out.log

一、 关键字查询

  1.查找搜索目标所在行数

    $cat xxx.log | grep -n  "查询关键字"

  2.查看搜索目标后2行数据

    $cat xxx.log | grep -A 2  "查询关键字"

  3.查看搜索目标前2行数据

    $cat xxx.log | grep -B 2  "查询关键字"

  4.同时查看搜索目前 前2行和 后2行数据

    $cat xxx.log | grep -C 2  "查询关键字"

  5.查看文件指定行数区间内容

    $sed -n '查询关键字' xxx.log 

二、 将文字输出到指定文件

条件:

文件名称: CloudPayment.log

搜索内容:1805 或 1905 

 输出文件: out.log

 

1、满足一个条件(包含  “TJ”  )的语句:

  grep '1805' CloudPayment.log  > out.log

  cat  CloudPayment.log | grep '1805' > out.log

 

2、满足两个条件中的一个条件(包含“1805” 或者 包含“1905”)的命令:

  egrep '18051905' CloudPayment.log > out.log

  grep -E '1805|1905' CloudPayment.log > out.log

  cat  CloudPayment.log | grep -E '1805|1905'  > out.log

 

3、同时满足两个条件中(包含“1805” 和 “1905”)的命令:

  grep '1805'  CloudPayment.log  | grep '1905'  > out.log

  egrep '1805.*1905| 1905.*1805' CloudPayment.log > out.log 

  cat CloudPayment.log | grep "1805"  | grep "1905"  > out.log

PS: 符号“>”表示擦除后写入文档  ; “>>”表示追加到文档

       部分字符需要使用斜杠转译,如减号等
 

4、grep和tee结合

  在文件 CloudPayment.log中搜索订单号1905,
  并将搜索结果输出到out.log
  grep '18051114551940610000' CloudPayment.log | tee -a out.log