西部数码网站管理助手 伪静态,揭阳cms建站,上海奥美广告有限公司,淄博网站建设培训grep匹配
grep用来过滤文本内容#xff0c;以匹配要查询的结果。
grep root /etc/passwd#xff1a;匹配包含root的行
-m 数字#xff1a;匹配几次后停止 -v#xff1a;取反-i#xff1a;忽略字符的大小写#xff0c;默认的#xff0c;可以不加-n#xff1a…grep匹配
grep用来过滤文本内容以匹配要查询的结果。
grep root /etc/passwd匹配包含root的行
-m 数字匹配几次后停止 -v取反-i忽略字符的大小写默认的可以不加-n显示匹配的行号 -c统计匹配的行数 -o仅匹配的字符串 -q静默模式-A 数字after包含匹配到的行以及后几行 -B 数字包含匹配到的行以及前几行 -C 数字包含匹配到的行以及前后各几行 -w匹配完整的单词的行 -E使用扩展正则表达式egrepgrep -E-f匹配两个文件中的相同内容以第一个文件的内容为准参照 -r递归目录查找文件内容软连接内容不包含。 -R递归目录查找文件内容软连接内容包含。 sort排序
按行对文件的内容进行排序也可以根据不同的数据类型进行排序 可见数字在前字母在后。
-f忽略大小写可以不加-b忽略每行前面的空格 -n按照数字进行排序 -u去重相同的内容仅显示一行-o输出的文件名把sort排序后的结果输出到指定的文件 案例1按原文排序输出到指定文件里 cat -n 可以添加行数sort -no 表示按数字排序输出到指定文件中正好可以按原文输出。 uniq去重
用于统计或者忽略文件中连续出现的重复行一般和sort结合使用
uniq 选线 文件名 cat 文件名 | uniq 选项
-c统计连续重复的行的次数并且合并重复的行 -u显示仅出现一次的行包括不连续的重复的行 -d仅显示重复出现的行必须时连续的重复的行 tr替换、压缩和删除
用来对标准输入的字符串进行替换、压缩和删除
tr 选项 参数
echo “字符串” | tr 选项 -c保留字符集1的字符其他字符替换字符集2 -d删除属于字符集1的字符 -s将重复出现的字符串压缩成一个用字符集2 替换 字符集1。 -t默认带t替换字符集一般不加 cut 截取
cut是对字段进行截取和裁剪
cut 选项 参数
cat 文件名 | cut 选项
-d指定分隔符默认分隔符是tab-f指定要截取的字段-b以字符的单位进行截取-c以字符的单位进行截取-complement排除指定的字段-output-delimiter更改输出内容的分隔符 以为分隔符截取 /etc/passwd 的第1-3段字符。 文件合并
cat 1 2 3 —上下合并 paste 1 2 3 —左右合并 split文件拆分
有一个文件太大直接打开速度很慢有什么办法提高素的
-l按行分割 -b按大小分割 正则表达式
正则表达式区别通配符正则表达式匹配文本的内容命令的输出结果也属于文本内容也可以使用正则表达式。
使用正则表达式匹配内容最好用引号单双都行引起来避免发生歧义。
通配符用来匹配文件名和目录名。 通配符
匹配文件名或者目录名
*任意一个或多个字符
任意单个字符
[a-z]、[0-9]匹配任意单个字符 基本正则
元字符
. 任意单个字符\表示转义符 [a-b]、[A-Z]、[0-9]匹配文件内容的任意单个字符[[:blank:]]匹配空白字符空格 表示分组[^]取反 次数表示
*任意字符表示匹配前面的任意字符0次也算尽可能多的匹配 . *任意长度的字符最少有1次也就是匹配所有。 \?匹配前面的字符0次或者1次可有可无 \匹配前面的字符最少出现1次有且1 \{n\}匹配前面的字符等于多少次 \{m,n\}匹配前面的字符最少m次最多n次 \{,n\}匹配前面的字符最多n次只要比n小都算 \{m,\}匹配前面的字符最少m次只要比m大都算 案例1匹配ens33出现的IP地址 命令ifconfig ens33 | grep -w inet | grep -Eo [0-9]\.[0-9]\.[0-9]\.[0-9] 位置锚定
^以什么开始$以什么结尾^$空行
^root$表示匹配以root为开头和结尾的即这一行只有root一个单词 词首锚定
\b
词尾锚定
\b 分组和逻辑条件
分组 或\| 扩展正则
扩展正则表达式
grep -E egrep
*任意字符表示匹配前面的任意字符0次也算尽可能多的匹配
. *任意长度的字符最少有1次也就是匹配所有
?匹配前面的字符0次或者1次可有可无
匹配前面的字符最少出现1次有且1
{n}匹配前面的字符等于多少次
{m,n}匹配前面的字符最少m次最多n次
{,n}匹配前面的字符最多n次只要比n小都算
{m,}匹配前面的字符最少m次只要比m大都算 补充案例
案例1显示/etc/passwd中以sh结尾的行 案例2查找/etc/inittab中含有“以s开头并以d结尾的单词模式的行 案例3查找ifconfig命令结果中的1-255之间的整数 案例4在/etc/passwd中取出默认shell为bash的行 案例5高亮显示passwd文件中冒号及其两侧的字符
cat /etc/passwd | grep -E .?:.? 案例6统计当前主机状态使用netstat或者ss
方法1netstat -antp | grep -v State | grep -v Internet | tr -s | cut -d -f 6 | sort | uniq -c 方法2ss -antp | grep -v State | cut -d -f 1 | sort | uniq -c 案例7统计nginx的访问日志当中多次出现的ip地址
cat /var/log/nginx/access.log | cut -d -f 1 | sort | uniq -c