以下是我常用的查找方法,希望对大家有用。欢迎大家补充。
1 查找文件中的内容。一般在日志比极大的时候用grep 很有用 ,下面我说下 我常用的 grep 参数。
当然这样输出的信息很少,有时候需要知道他的上下文。 这时候可以配合 -A -B -C 参数。
-A 就是显示匹配行之后的内容
比如
grep -A 10 'username' log/production.log
这样就会显示匹配'username'行后面10行的内容。
同样,如果要显示匹配行前面的内容可以加上 -B 命令(before)
grep -B 5 -A 10 'username' log/production.log #显示前面5行和后面10行的内容。
-C 命令就是 -A 和 -B 的结合了
grep -C 5 'username' log/production.log # 显示前后5行的内容。
一般情况我除了上面 -A -B -C 参数外在输出特别多的情况我会配合tail ,head ,more来使用
grep -C 5 'username' log/production.log #显示前后5行的内容。 grep -C 5 'username' log/production.log |more grep -C 5 'username' log/production.log | tail -100
grep 我还常用来查找代码
比如说有个方法是get_something 。如果我想看看有哪些地方使用了这个方法我就会用grep 配合 -n -d 来查找。
grep -n -d recurse 'get_something' ./
-n 是显示行号 -d recurse 则是递归搜索目录。
其他
根据文件名查找文件
grep -n -d recurse 'get_something' ./
查看指定行数
sed -n '190,196p' test.txt //查看第190 到 196行的内容
筛选列
awk '{print $2}' 打印第二列的内容。比如用 ps -ef|awk '{print $2}' 就可以把进程号给列出来