1.linux命令(grep、sort、uniq、tr、cut、split、paste)
1-1 grep命令
作用:过滤查找文本内容。
常用选项:
-m #:匹配几次之后停止。按行匹配,不是字符个数。
-v:取反。
-n:显示匹配的行号。
-c:仅显示匹配的行数,不显示匹配内容。
-o:仅显示匹配的内容。
-q:静默模式。
-A 数字:after 后几行。
-B:显示匹配到的行,以及前几行。
-C:前后各几行。
-e:实现多个过滤条件之间的逻辑或关系。
-w:匹配整个单词。
-E:使用扩展正则表达式。
-f:根据模式文件进行匹配,匹配两个文件的相同的内容。
-r:递归目录,但是不处理软链接。匹配目录中的文本的内容。
-R:递归目录,处理软链接。匹配目录中的文本的内容。
-E:扩展正则。
tip:
文本三剑客:grep 主要的就是查
sed 增和改
awk 按行取列
都是针对文本的内容。
1-2 sort命令
作用:按照行对文件内容进行排序,也可以过呢据不同的数据类型进行排序。
sort 选项 参数
cat 文件 | sort 选项
常用选项:
-f 忽略大小写,默认会把大写字母排在前面(默认选项)。 -b 忽略每行前面的空格。
-n 按照数字进行排序。 -r 反向排序。
-u 相同的数据只显示一行,去重。
-o 将排序后的文本内容转存到其他文件。
1-3 uniq命令
作用:按行进行处理,去重复行(连续出现)。
uniq 选项 参数
cat 文件 | uniq 选项
常用选项:
-c 统计连续重复出现的行的次数,并且合并重复的行,并展示。
-u 显示仅出现一次的行。
-d 显示仅重复出现的行。
1-4 tr命令
作用:字符替换,压缩,删除。
tr 选项 参数
cat 文件 | tr 选项
-c 保留字符集1的字符,其他字符用字符集2进行替换。
-d 删除字符集。
-s 重复出现的字符串压缩为一个字符串。
-t 默认可以不加,替换。把字符集2替换成字符集1。
1-5 cut命令
作用:快速裁剪,对字段进行截取和裁剪。
cut 选项 参数
cat 文件 | cut 选项
-d 指定裁剪的分隔符(默认的分隔符是tab的空格)。
-f 按行取列。根据第几个字段进行截取。
-b 以字节为单位,进行截取。
-c 以字符为单位,进行截取。
-complement 排除所指定的字段。
-output-delimiter 更改输出结果的分隔符。
1-6 split命令
作用:可以把大文件拆分成若干小文件。
-l 指定行数进行拆分。
-b 指定大小进行拆分。
tip:*面试题命令*
如何对文件进行拆分:
现在有一个日志文件,5G,直接打开速度很慢,有什么办法优化呢?
文件进行拆分
1-7 paste命令
*面试题命令*
cat合并和paste有什么区别?
paste合并命令:
cat是上下合并
paste是左右合并
2.0 正则表达式
2-1 Linux当中的通配符
作用:
通配符用来匹配文件名或者目录名。
*:匹配任意一个或者多个字符。
?:匹配任意一个字符。
[]:范围匹配。
2-2 正则表达式
正则表达式:由一类特殊字符以及文本字符所编写的模式。其中有些字符不表示字符字面的含义,而表示控制或者通配的功能。用来处理文本内容当中的字符。
由一些特殊字符组成的特定格式的内容,用来匹配文件当中的内容。
元字符:
. :匹配任意单个字符,也可以是一个汉字。
\:转义符。
():分组\(\)。
[]:匹配指定范围内的单个字符。
[a-z A-Z 0-9]
[[:blank:]]:匹配空格和制表符。
[^a]:表示除了a以外,取反。
表示次数:
*:匹配前面的字符任意次,包括0次,尽可能长的匹配。
.*:匹配前面的愿意字符任意次,但是不包括0次。
\?:匹配前面的字符,出现0次或者1次,可有可无。
\+:匹配前面出现的字符最少1次,最多无限。>=1。
\{n\}:表示前面的字符只能出现=n次。
\{n,m\}:表示前面的字符最少n次,最多m次。
\{,n\}:表示前面的字符最多出现n次。
\{n,\}:表示前面的字符最少出现n次,只要n次,n多次。