正则表达式(含管道符)

管道符的作用:将前面的输出作为后面的输入使用

Grep

-n 过滤内容 目录

-v 取反 过滤内容 目录

-m 1 匹配到x次即停止 过滤内容 目录

-i 匹配不区分大小写

-c 只显示行数

-o 只显示匹配的内容 过滤目录 目录

-q 静默模式 不显示内容,重定向到文件才显示内容

-A数字 匹配到后,将匹配行后x行也显示出来

-B数字 匹配到后,将匹配行前x行也显示出来

-C数字 匹配到后,将匹配行前后x行都显示出来

-e 表示逻辑或 grep -e root -e bash /etc/passwd

-w 精确匹配整个单词

-E 使用扩展正则表达式

-F 不支持正则表达式

-f 处理两个文件的相同内容 (第一个文件内容为参照物)

-r 递归目录和文件,查找出来的是文件的内容

-R 递归目录和所以文件,查找出来的是文件的内容(包括软连

接)

sort命令

以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序。

语法格式:

sort 选项 参数

cat file | sort 选项

常用选项:

-f 忽略大小写,默认大写字母在前

-b 忽略每行前面的空格

-n 按照数字进行排序

-r 反向排序

-u 等同uniq,表示相同的数据去重

-o 将排序后的结果转存至指定目录

(两边加-n ,sort -n -o 不改变顺序转存至指定目录)

uniq---快捷去重

用于报告或者忽略文件中连续的重复行,常与sort命令结合使用

uniq 选项 参数

cat 文件 | uniq 选项

-c 统计乱序重复的行的次数,并且合并重复的行

-u 显示仅出现一次的行

-d 仅显示连续重复的行

tr

常用于对来自标准输入的字符进行替换、压缩和删除

tr 选项 参数

常用选项:

-c 保留字符集1的字符,其他的字符(包括换行符\n)用字符集2替换

-d 删除所有属于字符集1的字符

-s 将重复出现的字符串压缩为一个字符串,用字符集2 替换 字符集1

-t 字符集2 替换 字符集1 ,不加也行

cut -----快速裁剪

expr substr 截取方法

cut 选项 参数

cat file | cut 选项 参数

-d 制定分隔符(默认分隔符为Tab)

-f 按字段进行截取,指定第n个字段

-b 以字节为单位进行截取

-c 以字节为单位进行截取

--complement 排除所制定的字段

--output-delimiter 更改输出内容的分隔符

▲split-----文件拆分(日志)

split命令用于linux

-l 指定行数进行文件拆分 (给前缀)

-b 指定大小进行文件拆分 (单位小写即可,后缀名)

paste

按照字段来进行文件的合并

-d 用于指定文件的分隔符(默认情况下为制表符“\n”)

-s 将列和行的内容进行互相交换

paste 文件名 文件名 左右拼接

♢paste a b 和 cat a b 之间的区别

cat 上下拼接 paste左右拼接

★统计当前主机的连接状态

ss -ant | grep -v '^State' | cut -d " " -f 1 | sort | uniq -c

★统计当前连接主机数

ss -nt | tr -s "" | cut -d " " -f 5 | sort -n | uniq -c

变量扫描器------eval

命令字前加上eval,shell会在执行命令前扫描它两次,该命令适用于那些一次扫描无法实现功能的变量,该命令会对变

量进行两次扫描。

正则表达式 Regular Expression

有一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能,

类似于增强版的通配符功能,但与通配符不同,通配符功能是用来处理文件名,而正则表达式是处理文本内容。

正则匹配的字是红色,要用引号括起

正则是匹配,不是打印

通配符主要是为了方便用户对文件或者目录的描述。

基本正则表达式

元字符:

. 匹配单个字符,可以是个汉字

[] 匹配指定范围内的任意单个字符,例[0-9]

[^] 匹配指定范围外的任意单个字符,例 [^a.z]

[:alnum:] 字母和数字

[:alpha:] 代表任何英文大小写字符,即A-Z,a-z

[:lower:] 小写

[:upper:] 大写

[:blank:] 空白字符

[:space:] 包括空格、制表符

[:digit:] 十进制数字

[:xdigit:] 十六进制数字

ls /etc/ | grep 'rc.' 只匹配以rc.开头的文件

ls /etc/ | grep ‘rc\. ’ \转义字符,只是个.

ls | grep "[abcd].txt" 匹配a或b或c或d 开头 加任意字符 加txt的文件

ls | grep '[a-zA-Z].txt' 同时表示大写和小写

ls | grep'[^a-z].txt' 取所有小写的反,即匹配大写

grep [[:space:]] 123.txt 匹配空格

表示次数

* 匹配前面的字符任意次,包括0次

.* 匹配所有,任意长度的任意字符,不包括0次

\? 匹配前面的字符,出现0次或1次

\+ 匹配其前面的字符出现最少1次

\{n\} 匹配前面的字符n次

\{m,n\} 匹配前面的字符至少m次,最多n次

\{,n\} 匹配前面的字符至多n次,最少0次

\{n,\} 匹配前面的字符至少n次

grep ip:

ifconfig ens33 | grep -o '[0-9]\+\.[0-9]\+[0-9]\+[0-9]\+'

ifconfig ens33 | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}

你可能感兴趣的:(笔记,linux)