grep命令详解
通用正则表达式解析器(grep,General Regular Expression Parser),打印符合某个特征的行。
使用实例:
-
查找指定进程:``ps -ef | grep md`
-
在指定文件中查找有关键字的行:``grep “aa” greptest`
-
在多个文件中查找有关键字的行:``grep “aa” *` *表示该路径下的匹配零个或多个文件
-
管道符:
|
命令1|命令2:命令1的正确执行结果作为明令2的操作对象。grep "aa" * |grep "ty"
参数使用
-
-c
:计算符合样式的列数。grep -c “aa” \*
-
-A 显示行数
:显示符合范本样式的那一列之外,并显示该行之后的内容(行数)。 -
-B 显示行数
:显示符合范本样式的那一列之外,并显示该行之前的内容(行数)。 -
-C 显示行数
:显示符合范本样式的那一列之外,并显示该行之前后的内容(行数)。 -
-R
:递归的对目录下的所有文件(包括子目录)进行 grep -
-i
:忽略大小写 -
-h
:取消每个输出行前缀,即匹配查询模式的文件名 -
-l
:只列出匹配行的文件名,而不输出真正的匹配行 -
grep默认支持通配符。正则表达式就是一些字符是有特殊含义的。
限定符 描述 实例 ^ 指向一行的开头 $ 指向一行的结尾 . 单个字符 [ ] [0-9]字母集合,[0-9a-z]表示字母与数字集合,在这里边的^表示的不是一行开头而是非,[^0-9]非数字字符 \< 锚定单词的开始(实际上是:匹配字符之前的空格) \> 锚定单词的结束(实际上是:匹配字符之前的空格) \b 等价于 \< 和 \> * 匹配前面的子表达式零次或多次。 -
-E
:扩展正则表达式,当默认的表达是不够用时,就要使用扩展正则表达式限定符 描述 实例 ? 匹配前面的子表达式,最多一次。 + 匹配前面的子表达式一次或多次。 {N} 匹配前面的子表达式 N 次。 {N,} 匹配前面的子表达式 N 次到多次。 {N,M} 匹配前面的子表达式 N 到 M 次,至少 N 次至多 M 次。
终端分页阅读器
有些文件非常长,无法在一屏的空间内显示完全。所以在查看这种文件时,我们需要分页显示。这时我们就可以使用 more
,less most
命令。
more 命令详解
- 空格键:查看下一屏; b键:查看上一屏
- 回车键:往下滚动一行;不支持向上滚动一行
- /字符串:向下搜索"字符串" 不支持向上搜索
- n键:匹配下一个关键字;不支持向上匹配
- q 键:退出。
缺点不能高亮查询,只能向下查询,不支持向上滚动一行
-
从指定行开始显示: more 默认是从第一行开始显示。但有时我们可能想直接从 100 行开始看,其实只需加一个
+50
即可。 -
more 命令默认是整屏显示,如果我们一次只想查看几行,要怎么操作?只需加一个
-N
选项即可,N 就是你想要查看的行数。 -
终端里一共显示了 20 行。默认按下空格键是其内容后继续显示20行,如果我们想要每次按下空格键在另一个页面20行,我们只需加上 -c 选项。
-
+/pattern 从文件中查找第一个出现字符串的行,并从该处前两行开始显示输出。
-
也可以在该模式下。按/pattern,可以在文本中寻找下一个相匹配的模式(pattern)。再按n匹配下一个模式。 不支持向上查找
less 命令详解
- 空格键:查看下一屏; b键:查看上一屏 d键: 向后翻半页 u键: 向前翻半页
- 回车键:往下滚动一行; 上下键:向上下滚动一行
- /字符串:向下搜索"字符串" ?字符串:向上搜索"字符串"
- n键:匹配下一个关键字; N键:匹配上一个关键字
- q 键:退出。
相比较比more
命令,
less
可以在整个文件中任意阅读(支持向上滚动一行)。- 支持向上查询(N)(?)
- less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容
- 会高亮显示
注意:如果您使用less查看一个小文件,您将在顶部看到空的空白行。不要慌。文件中没有多余的行。只是less命令命令的显示方式而已。
"less -e" 当文件显示结束后,自动离开,无需输入"q"
“less -f” 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
"less -m" 显示类似more命令的百分比
“less -N” 显示每行的行号
“less -s” 将连续的空行合并成一行显示
“less -S” 行信息过长时,将超出部分舍弃
-
如果需要向下搜索,输入(
/字符串
):按n
键:跳转到下一个匹配的字符串,按N
键:跳转到上一个匹配的字符串/linux
-
如果需要向上搜索,输入(
?字符串
):按n
键:跳转到下一个匹配的字符串,按N
键:跳转到上一个匹配的字符串?linux
-
直接定位到某个位置!
#直接定位到第100行 less + 100g xx . log # 定位到最后一行 less + GG xx . log
-
只需要按
v
键,就会将正在阅读的文件在默认编辑器中打开,然后就可以对文件进行各种编辑操作了。
WC命令详解
wc(Word Count):统计指定文件中的字节数、字数、行数,并将统计结果显示输出
-c
统计字节数。-l
统计行数。-m
统计字符数。这个标志不能与 -c 标志一起使用。-w
统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
sort命令详解
sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较(相同则比较下一个字符),最后将他们按升序输出。
这里可以看到10在2的前面,这是因为比较的是1<2,而不是比较10>2
-
-n
表示按数字进行排序,默认是按ASCII码排序。可以看到不再是一个一个字符的比较了,而是把它当成一个整体来比较 -
-u
输出行中去除重复行。可以看到两个20只留下了一个 -
-r
表示降序,默认是升序 -
-t
使用符合将一行分为几个小块,-k
使用第几个小块进行比较,默认是第一个小块。-t
和-k
一般都是搭配使用的。-k2,表示第二块,-k3,表示第三块,以此类推 -kn,表示第n块使用第二块字母排序
使用第三块数字排序
-
其他的sort常用选项
-f
会将小写字母都转换为大写字母来进行比较,亦即忽略大小写-c
会检查文件是否已排好序,如果乱序,则输出第一个乱序的行的相关信息,最后返回1-C
会检查文件是否已排好序,如果乱序,不输出内容,仅返回1-M
会以月份来排序,比如JAN小于FEB等等-b
会忽略每一行前面的所有空白部分,从第一个可见字符开始比较。