目录
目录
前言
在开发中经常会遇到查看日志的场景。如果需要查找日志中的关键字可以通过grep或者vim中的命令进行查找。也可以通过tail命令进行查看实时日志。
一、grep命令
grep:中文意思就是查找字符串的意思,通过man grep命令可以看到对这个命令的描述:
DESCRIPTION
grep searches for PATTERN in each FILE. A FILE of “-” stands for standard input. If no FILE is given, recursive searches examine the working directory, and nonrecursive searches read standard input. By default, grep prints the matching lines.
#大致意思是说:grep在每个文件中查找通过匹配模式匹配数据。如果没有自定文件,递归搜索工作目录下存在的文件。grep 默认打印匹配出的行。
grep [OPTIONS] PATTERN [FILE...]
1.1.常用用法
1.1.1文件内容查找:
#1.查找当前目录下a.txt文件内 包含abc的行内容
grep abc a.txt
#note 如果想搜索----abc 关键字 需要在关键字前加转移符,如 grep \\----abc a.txt
#运行结果
#-----abc---
#2.递归查找当前文件夹下 包含abc的行内容,如果有文件中,也会查找文件夹内的文件
grep -r abc ./*
#运行结果
#./a.txt:-----abc---
#./data/a.txt:a.txt--abc--a.txt
#3.对于示例2,如果不需要查找文件夹内的文件,可以通过 -a命令来指定文件格式为txt
grep -d skip abc ./*
#运行结果
# ./a.txt:-----abc---
1.1.2搜索后的内容展示
#展示匹配内容及前面2行 -nH代表显示行号和文件名 -B(befor)
grep -B 2 -nH abc a.txt
#运行结果
a.txt-2-hell2
a.txt-3-hell3
a.txt:4:-----abc---
#展示匹配内容及后面2行 -nH代表显示行号和文件名 -A(after)
grep -A 2 -nH abc a.txt
#运行结果
a.txt:4:-----abc---
a.txt-5-word1
a.txt-6-word2
#展示匹配内容及后面2行 -nH代表显示行号和文件名 -C
grep -C 2 -nH abc a.txt
#运行结果
a.txt-2-hell2
a.txt-3-hell3
a.txt:4:-----abc---
a.txt-5-word1
a.txt-6-word2
其他详细用法可以参考man grep 命令,或参考博客grep用法大全 && grep常用用法总结_夜雨落花的博客-CSDN博客_grep用法
二、vim命令
2.1 vim中的三种模式
1:命令模式
在该模式下不能对文件直接进行编辑,但可以使用一些快捷键岁文件进行操作(删除行、复制行、移动光标、粘贴等)【打开时候默认进入的模式】2:编辑模式(输入模式);
在该模式下可以对文件内容进行编辑3: 末行模式(尾行模式)。
可以在末行输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等)
2.2常用命令:
在进行查找前,我们先学习一些必要的命令
2.2.1.显示文本行号
#尾行行模式下输入 set nu
:set nu
2.2.2.光标移动命令(命令模式)
命令 | 作用 | 类型 |
---|---|---|
gg | 光标移动到文件首位 | 全局位置移动 |
G | 光标移动到文件末尾 | |
H | 把光标移到屏幕最顶端一行 | |
M | 把光标移到屏幕中间一行 | |
L | 把光标移到屏幕最底端一行 | |
:n/nG | 光标移动到指定行 | 跳跃移动 |
n | 光标向下移动n行 | |
enter | 光标移动到下一行行首 | 行内/行间移动 |
h | 光标向左移动一个字符 | |
l | 光标向右移动一个字符 | |
j | 光标向下移动一个字符 | |
k | 光标向上移动一个字符 | |
0/^ | 光标移动到行的首位 | |
$ | 光标移动到行的末位 | |
:%d | 删除文件中所有字符串 %代表整个文件。 d 代表删除 | 删除字符 |
2.2.3.翻屏
命令 | 作用 |
---|---|
ctrl+f | 下翻一屏 |
ctrl+b | 上翻一屏 |
ctrl+d | 下翻半屏 |
ctrl+u | 上翻半屏 |
2.2.4.查找
命令 | 说明 |
---|---|
/someting | 在前面的文本中查找something关键字 |
?someting | 在后面的文本中查找something关键字 |
n | 沿当前搜索方向继续搜索下一个匹配字段 |
N | 沿当前搜索相反方向搜索下一匹配字段。 |
四、tail命令
tail命令主要用来查看实时日志,可通过 tail -f file命令来实现。默认展示前10行数据。
如果需要指定显示的行数可以通过 tail -n 100 -f file 命令实现
五、截取文本指定范围的文本
# 选取 test.txt文本中startNum和endNum之间的文本
head -n endNum test.txt | tail -n $((startNum - endNum)) > tmp.txt
总结
文中记录了三种文本内容查看或搜索的命令。文中部分内容参考网络博主。对此表示感谢。