引用:Linux:在文件中查找指定内容并输出到文件
一、 关键字查询
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
二、输出文件:
1 满足一个条件
例如:将文件 file1 中包含 name 的行输出到 file2.
grep 'name' file1 > file2# 或者cat file1 | grep 'name' > file2 输入grep后提示 匹配到二进制文件 (标准输入) 无显示结果 使用grep -a 'name' file1 > file2#
2 满足两个条件任意一个
egrep 'name|age' file1 > file2# 或者grep -E 'name|age' file1 > file2# 或者cat file1 | grep -E 'name|age' > file2
例如:将文件 file1 中包含 name 或者 age 的行输出到 file2.
3 同时满足两个条件
例如:将文件 file1 中包含 name 和 age 的行输出到 file2.
grep 'name' file1 | grep 'age' > file2# 或者cat file1 | grep 'name' | grep 'age' > file2
注意:符号“>”表示擦除文件原内容并写入;“>>”表示追加内容。
4 命令 grep 和 tee 搭配使用
grep 'name' file1 | tee -a file2