liunx文本三剑客(grep,awk,sed),正则表达式

正则表达式

基础正则

符号含义
^以…开头
$以…结尾
[]表示或者,[abc] 表示a或者b或者c ,和去除特殊字符含义
*表示前一个字符出现0次或者多次
.表示任意一个字符
^$表示空行
.*表示任意字符
[^]表示取反

^ :以...开头
grep -n ”^p“ scan_oN.txt

在这里插入图片描述

* : 匹配前面的字符任意次,包括0次,贪婪模式:尽可能长的匹配
grep -n "t*“ scan_oN.txt

在这里插入图片描述

$ :以....为结尾
grep -n "p$" scan_oN.txt

在这里插入图片描述

. : 匹配任意单个字符,不能匹配空行
grep -n ".0" scan_oN.txt

在这里插入图片描述

^$ :匹配空行
grep -n "^$" scan_oN.txt

在这里插入图片描述

.* :匹配任意字符
grep -n ".*" scan_oN.txt

在这里插入图片描述

-v :显示不被pattern 匹配到的行,相当于[^] 反向匹配
grep -nv "^$" scan_oN.txt
不显示空行

在这里插入图片描述

\ :转义字符
grep -n "\.$" scan_oN.txt
查询以 . 结尾的

在这里插入图片描述

[] :中括号,表示匹配中括号内的任意一个字符[abc] a或b或c
注意[]还有转义字符的作用,在中括号中的特殊字符都会被转义
grep -n "[abc]" scan_oN.txt

在这里插入图片描述

[^] :取反的效果
grep -n "[\^abc]" scan_oN.txt

在这里插入图片描述

[0-9]:匹配所有包含数字的行
grep -n "[0-9]" scan_oN.txt

在这里插入图片描述

[a-z] :匹配所有包含小写字母的行
grep -n "[a-z]" scan_oN.txt

在这里插入图片描述

[A-Z] :匹配所有包含大写字母的行
grep -n "[A-Z]" scan_oN.txt

在这里插入图片描述

[a-Z0-9] 或 [a-zA-Z0-9] :匹配所有大小字母和所有数字
-i :不区分大小写
grep -n "[a-Z0-9]" scan_oN.txt
grep -n "[a-zA-Z0-9]" scan_oN.txt
grep -ni "[a-z0-9]" scan_oN.txt

在这里插入图片描述
在这里插入图片描述

[.] :中括号转义,匹配所有带点的行
grep -n "[.]" scan_oN.txt

在这里插入图片描述

扩展正则

符号含义
+前一个字符连续出现1次或者1次以上
|或者
()一个整体,sed反向引用
{}o{n,m}前一个字母o,至少连续出现n次,最多连续出现m次
前一个字母连续出现0次或者1次

| :竖杠,表示或者的意思
egrep "ftp|ssh" scan_oN.txt

在这里插入图片描述

+ :表示匹配前字符1次字符或者前字符多次字符
egrep "p+" scan_oN.txt

在这里插入图片描述

[0-9]+ :匹配连续的数字
egrep "[0-9]+" scan_oN.txt

[a-Z]+ :匹配所有连续的字母
egrep "[a-Z]+" scan_oN.txt
在这里插入图片描述

-o :显示匹配结果过程
egrep -o "[a-Z]+" scan_oN.txt

在这里插入图片描述

() :被小括号括起来的表示为一个整体,在sed命令中是向后引用
egrep “i(n|t)” scan_oN.txt

在这里插入图片描述

{} :o{n,m} o:表示o至少连续出现n次,m表示o最多连续出现m次
egrep "0{2,3}" scan_oN.txt

在这里插入图片描述

{} :o{n} o:表示o刚好连续出现了n次
egrep "0{2}" scan_oN.txt

在这里插入图片描述

{} :o{,m}:表示o最多连续出现了m次
egrep "0{,3}" scan_oN.txt

在这里插入图片描述

{} :o{n,}:表示o连续出现的次数小于等于n
egrep "0{2,}" scan_oN.txt

在这里插入图片描述

? :前一个字符至少连续出现0次或者1次
egrep "T?" scan_oN.txt

在这里插入图片描述

liunx文本三剑客

grep的基本使用

参数含义
-E== egrep 当使用扩展正则时使用
-A-An 显示符合条件行及其后n行
-B-Bn显示符合条件行及其前n行
-C-Cn显示符合条件行及其前后n行
-c-c 统计符合条件的行数
-w精准匹配
-o显示匹配过程
-v排除符合条件的行
-i不区分大小写
-n显示行号

-E :== egrep 当使用扩展正则时使用
grep -E "0{2}" scan_oN.txt

在这里插入图片描述

-A :-An 显示符合条件行及其后n行
grep -A5 "Nmap" scan_oN.txt

在这里插入图片描述

-B :-Bn 显示符合条件及其前n行
grep -B5 "Nmap" scan_oN.txt

在这里插入图片描述

-C :-Cn 显示符合条件及其前后n行
grep -C5 "Nmap" scan_oN.txt

在这里插入图片描述

-c :统计符合条件的行数
grep -c "Nmap" scan_oN.txt

在这里插入图片描述

-i :不区分大小
grep -i "nmap" scan_oN.txt

在这里插入图片描述

-v :排除
grep -v "Namp" scan_oN.txt

在这里插入图片描述

-o :显示匹配过程
grep -o "Nmap" scan_oN.txt

在这里插入图片描述

-w :精准匹配
grep -w "mysql" scan_oN.txt

在这里插入图片描述

-n :显示行号
grep -n "mysql" scan_oN.txt

在这里插入图片描述

sed

查找p

参数说明
npn表示查找并输出显示的行数
/0/p表示查找并输出显示符合0的行
/0/,/9/p表示查找并输出显示符合0的行
/[0-9]/p支持正则表达式
-r支持扩展正则表达式
-n只输出符合条件的行

sed -n '3p' scan_oN.txt
查询指定行

在这里插入图片描述

sed -n '/21/p' scan_oN.txt
查询包含指定内容的行

在这里插入图片描述

sed -n /21/,/80/p scan_oN.txt
范围过滤

在这里插入图片描述

sed -n '$p' scan_oN.txt
最后一行

在这里插入图片描述

删除d

sed '1d' scan_oN.txt
删除指定行

在这里插入图片描述

sed '2,4p' scan_oN.txt
删除指定范围的

在这里插入图片描述

sed '/ftp/d' scan_oN.txt
删除指定内容的行

在这里插入图片描述

sed '/21/,/3306/d' scan_oN.txt
删除指定范围的行

在这里插入图片描述

增加cai

sed '2a xiao hei zi' scan_oN.txt
a在指定行后追加
在这里插入图片描述

sed '2i xiaoheizi' scan_oN.txt
i在指定行前插入内容

在这里插入图片描述

sed '2c xxxxxx' scan_oN.txt
c替换指定行内容

在这里插入图片描述

替换s

sed 's#MAC#YYY#g' scan_oN.txt
s 替换
g 全局替换
sed 默认替换第一个字符所有要加g
替换调指定内容

在这里插入图片描述

sed -nr '6s#^.*/(.*cp).*#\1#gp'
()后向引用
在这里插入图片描述

ip a s eth0 | sed -n '3p' | sed -nr 's#.*t (.*)/.*#\1#gp'
ip a s eth0 | sed -nr '3s#.*t (.*)/.*#\1#gp'
去ip地址案例

在这里插入图片描述

awk

命令参数
NRNR行,NR==3 表示第三行
NF每行有多少列,$NF 表示最后一列
FS-F分隔符,-F : 表示用:做分割符
OFSOFS输出字段分隔符,-vOFS=:表示用:做分割符输出

ls -l | awk NR==2{print $6}
取第二行的第6列,默认分割符为空格,连续的空格,和制表位(TAB)

在这里插入图片描述

ls -l | awk -F: 'NR==2{print $2}'
-F指定分割符为:

在这里插入图片描述

ls -l | awk -F - 'NR==2{print $NF}'
取最后一列的

在这里插入图片描述

ls -l | awk -F- -vOFS=: 'NR==2{print $1,$2,$3}'
指定输出分割符为:

在这里插入图片描述

ls -l | awk -F- "//"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值