shell中的文本处理正则表达式(grep+sed+awk)

​​光流结合深度学习实现物体运动方向判断 光流计算:提取每一帧视频中像素的运动信息,生成光流图。光流特征提取:通过特定的预处理,将光流图转换为深度学习模型可用的输入格式。深度学习模型设计:构建一个卷积神经网络(CNN)或其他适合的深度学习架构,利用光流特征进行运动方向分类。模型训练与推理:对网络进行训练并使用训练好的模型判断运动方向。光流与深度学习结合的运动方向判断技术在多个领域具有广泛的应用前景。通过光流提取像素级动态信息,并利用深度学习模型学习高层次特征,可以实现高精度的运动检测与方向判断。 阅读详情

grep文本过滤命令

grep用于shell脚本时,如果模板搜索成功返回0,不成功返回1,搜索文件不存在返回2

名称方法
搜索file中的xxxgrep  xxx  file
只输出匹配行的计数grep -c  xxx  file
不区分大 小写(只适用于单字符)grep -i  xxx  file
查询多文件时不显示文件名grep -h  xxx  file
查询多文件时只输出包含匹配字符的文件名grep -I  xxx  file
显示匹配行及行号grep -n  xxx  file
不显示不存在或无匹配文本的错误信息grep -s  xxx  file
显示不包含匹配文本的所有行grep -v  xxx  file

##过滤passwd中的root——grep root passwd
[root@shell_grep mnt]# cp -p /etc/passwd .
cp: overwrite ‘./passwd’? n
[root@shell_grep mnt]# grep root passwd
root❌0:0:root:/root:/bin/bash
operator❌11:0:operator:/root:/sbin/nologin
root ROOT njvlksdvmROOT SKDVMS root
ROOT SDKLJNVCS root
ROOT root sdvkn ROOT root
在这里插入图片描述
搜索全文中的root,grep属于贪婪模式的搜索和匹配,只要行中有root出现,它就会打印匹配的行,除非指定什么开头,什么结尾

##-E,grep的扩展模式:可以一次性加两个条件——grep -E
[root@shell_grep mnt]# grep -E “root|ROOT” passwd
root❌0:0:root:/root:/bin/bash
operator❌11:0:operator:/root:/sbin/nologin
root ROOT njvlksdvmROOT SKDVMS root
ROOT SDKLJNVCS root
ROOT root sdvkn ROOT root
在这里插入图片描述

##忽略大小写过滤——grep -i
[root@shell_grep mnt]# grep -i root passwd
root❌0:0:root:/root:/bin/bash
operator❌11:0:operator:/root:/sbin/nologin
root ROOT njvlksdvmROOT SKDVMS root
ROOT SDKLJNVCS root
ROOT root sdvkn ROOT root
在这里插入图片描述
##过滤出以root开头的行——grep ^xxx
[root@shell_grep mnt]# grep ^root passwd
root❌0:0:root:/root:/bin/bash
root ROOT njvlksdvmROOT SKDVMS root
在这里插入图片描述
##过滤出以root结尾的行——grep xxx$
[root@shell_grep mnt]# grep root$ passwd
root ROOT njvlksdvmROOT SKDVMS root
ROOT SDKLJNVCS root
ROOT root sdvkn ROOT root
在这里插入图片描述

##过滤出以root开头和结尾的——grep -E “^xxx|xxx$“

[root@shell_grep mnt]# grep -E “^root|root$” passwd
root❌0:0:root:/root:/bin/bash
root ROOT njvlksdvmROOT SKDVMS root
ROOT SDKLJNVCS root
ROOT root sdvkn ROOT root
在这里插入图片描述
##-v表示取反——过滤出不以root开头和结尾的

[root@shell_grep mnt]# grep -Ev “^root|root$” passwd
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
省略
在这里插入图片描述

##过滤出root居中的
[root@shell_grep mnt]# grep -Evi “^root|root$” passwd | grep root

[root@shell_grep mnt]# grep -Evi “^root|root$” passwd | grep root
operator❌11:0:operator:/root:/sbin/nologin
在这里插入图片描述

##过滤出以root开头和结尾的,且排序
[root@shell_grep mnt]# grep -Ein “^root|rootKaTeX parse error: Expected 'EOF', got '#' at position 158: …shell_grep mnt]#̲ grep -Ein "^ro…” passwd
1:root❌0:0:root:/root:/bin/bash
40:root ROOT njvlksdvmROOT SKDVMS root
41:ROOT SDKLJNVCS root
42:ROOT root sdvkn ROOT root

在这里插入图片描述
##过滤出ROOT所在行及其前一行

[root@shell_grep mnt]# grep root passwd -B 1
root:x:0:0:root:/root:/bin/bash
--
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
--
tcpdump:x:72:72::/:/sbin/nologin
root ROOT njvlksdvmROOT SKDVMS  root
ROOT SDKLJNVCS root
ROOT root sdvkn ROOT root

在这里插入图片描述

##过滤出ROOT所在行及其后一行

[root@shell_grep mnt]# grep root passwd -A 1
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
--
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
--
root ROOT njvlksdvmROOT SKDVMS  root
ROOT SDKLJNVCS root
ROOT root sdvkn ROOT root

在这里插入图片描述
##过滤出ROOT所在行及其前后2行

[root@shell_grep mnt]# grep root passwd -2
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
--
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
--
gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
root ROOT njvlksdvmROOT SKDVMS  root
ROOT SDKLJNVCS root
ROOT root sdvkn ROOT root

在这里插入图片描述

grep中的正则表达式

名称方法
忽略正则表达式中特殊字符的原有含义\
匹配正则表达式的开始行^
匹配正则表达式的结束行$
从匹配正则表达 式的行开始\<
到匹配正则表达式的行结束>\
单个字符,如[A]即A符合要求[ ]
范围,如[A-Z],即A、B、C一直到Z都符合要求[ - ]
所有的单个字符?:
有字符,长度可以为0*:

##正则表达式的表现形式

匹配x后面只要大于等于有两位字符的 	   	grep -E "x.." file 
匹配x后面只有两位的  					grep -E "x..\>" file 
匹配x后面仅有两位的,前面没有后面也没有  	grep -E "\<x..\>" file  
匹配y前面只要大于等于有两位字符的	    grep -E "..y" file   
匹配y前面只有两位字符的				grep -E "\<..y" file   

##匹配x后面只要大于等于有两位字符的——grep -E “x…” file
[root@shell_grep mnt]# vim file
[root@shell_grep mnt]# cat file
x
xxy
xxxy
xxxxy
xxxxxy
xxxxxxy
[root@shell_grep mnt]# grep -E “x…” file
xxy
xxxy
xxxxy
xxxxxy
xxxxxxy
在这里插入图片描述
##匹配x后面只有两位的——grep -E “x…>” file
[root@shell_grep mnt]# grep -E “x…>” file
xxy
xxxy
xxxxy
xxxxxy
xxxxxxy
在这里插入图片描述

##匹配x后面仅有两位的,前面没有后面也没有——grep -E “<x…>” file
[root@shell_grep mnt]# grep -E “<x…>” file
xxy
在这里插入图片描述

##匹配y前面只要大于等于有两位字符的——grep -E “…y” file
[root@shell_grep mnt]# grep -E “…y” file
xxy
xxxy
xxxxy
xxxxxy
xxxxxxy
在这里插入图片描述

##匹配y前面只有两位字符的——grep -E “<…y” file
[root@shell_grep mnt]# grep -E “<…y” file
xxy
在这里插入图片描述

##grep中字符的匹配次数设定

字符出现0-任意次							*  
字符出现0-1次								?
字符出现1-任意次							+
字符出现n次								{n}
最少出现m次,最多出现n次					{m,n}	
字符出现0-n次								{0,n}
字符出现至少 m 次							{m,}
关键字出现 n 次							(xy){n}xy 
关键字之间匹配任意字符 					.*

##x出现0到任意次
[root@shell_grep mnt]# grep -E x*y file
xxy
xxxy
xxxxy
xxxxxy
xxxxxxy
在这里插入图片描述
##x出现0到1次
[root@shell_grep mnt]# grep -E x?y file
xxy
xxxy
xxxxy
xxxxxy
xxxxxxy
在这里插入图片描述

##x出现1到任意次且后面有y
[root@shell_grep mnt]# grep -E x+y file
xxy
xxxy
xxxxy
xxxxxy
xxxxxxy
在这里插入图片描述

##x开头y 出现一次的字符
[root@shell_grep mnt]# grep -E “<x{1}y” file
xy
xyxyxyxy
在这里插入图片描述
##x开头y结尾 出现一次的字符
[root@shell_grep mnt]# grep -E “<x{1}y>” file
xy
在这里插入图片描述

##x开头,y结尾 x最多出现两次的
[root@shell_grep mnt]# grep -E “<x{,2}y>” file
y
xy
xxy
在这里插入图片描述

##x开头,y结尾 x至少出现两次的
[root@shell_grep mnt]# grep -E “<x{2,}y>” file
xxy
xxxy
xxxxy
xxxxxy
xxxxxxy
在这里插入图片描述

sed行编辑器(以行为单位)

##什么是sed

  SED是一项Linux指令,功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强,sed用来操作纯 ASCII 码的文本 处理时 , 把当前处理的行存储在临时缓冲区中 , 称为“模式空间” (pattern space) ,可以指定仅仅处理哪些行 sed 符合模式条件的处理,不符合条件的不予处理,处理完成之后把缓冲区的内容送往屏幕接着处理下一行 ,这样不断重复 , 直到文件末尾,原来的内容是在磁盘当中放着,现在用sed命令处理的时候将内容掉入内存的一个地方用户处理,这个处理空间也叫模式空间。

##sed对字符的处理

名称方法
显示p
删除d
添加a
替换c
写入w
插入i

##p 模式操作——按照要求显示行

sed -n '/\:/p' fstab	##显示有:的行的内容
sed -n '/UUID$/P' fstab ##显示UUID结尾的行的内容
sed -n '/^UUID/P' fstab ##显示UUID开头的行的内容
sed -n '2,6p' fstab 	##显示第二行到第六行的内容
sed -n '2,6!p' fstab 	##显示除了2-6行都显示
## 移动挂载文件夹
[root@grep_sed mnt]# cp -p /etc/fstab .
##编辑该文件
[root@grep_sed mnt]# vim fstab 
##查看文件内容
[root@grep_sed mnt]# cat fstab 

#
# /etc/fstab
# Created by anaconda on Wed May  7 01:22:57 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 /                       xfs     defaults        1 1
GVBHJNKMLUUID

##显示有:的行的内容
[root@grep_sed mnt]# sed -n '/:/p' fstab 
# Created by anaconda on Wed May  7 01:22:57 2014
##显示UUID结尾的行的内容
[root@grep_sed mnt]# sed -n '/UUID$/p' fstab 
GVBHJNKMLUUID
##显示UUID开头的行的内容
[root@grep_sed mnt]# sed -n '/^UUID/p' fstab 
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 /                       xfs     defaults        1 1
##显示第二行到第六行的内容
[root@grep_sed mnt]# sed -n '2,6p' fstab 
#
# /etc/fstab
# Created by anaconda on Wed May  7 01:22:57 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
##显示除了2-6行都显示
[root@grep_sed mnt]# sed -n '2,6!p' fstab 

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 /                       xfs     defaults        1 1
GVBHJNKMLUUID

在这里插入图片描述

##d 模式操作——按照要求删除行

sed '/^UUID/d' /etc/fstab  ##删除UUID开头的行的内容
sed '/^#/d' /etc/fstab	   ##删除#开头的行的内容
sed '/^$/d' /etc/fstab	   ##删除空行
sed '1,4d' /etc/fstab 	   ##删除1-4行的内容
sed '/^UUID/!d' /etc/fstab ##删除除UUID开头外的行的内容
##删除UUID开头的行的内容
root@grep_sed mnt]# sed '/^UUID/d' fstab

#
# /etc/fstab
# Created by anaconda on Wed May  7 01:22:57 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
GVBHJNKMLUUID
##删除#开头的行的内容
[root@grep_sed mnt]# sed '/^#/d' fstab

UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 /                       xfs     defaults        1 1
GVBHJNKMLUUID
##删除空行
[root@grep_sed mnt]# sed '/^$/d' fstab
#
# /etc/fstab
# Created by anaconda on Wed May  7 01:22:57 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 /                       xfs     defaults        1 1
GVBHJNKMLUUID
##删除1-4行的内容
[root@grep_sed mnt]# sed '/1,4/d' fstab

#
# /etc/fstab
# Created by anaconda on Wed May  7 01:22:57 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 /                       xfs     defaults        1 1
GVBHJNKMLUUID
##删除除UUID开头外的行的内容
[root@grep_sed mnt]# sed '/^UUID/!d' fstab
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 /                       xfs     defaults        1 1

在这里插入图片描述

##.a模式操作——按照要求添加

sed '/^UUID/ahello linux' fstab 	##在UUID开头的行的后添加‘hello linux’
sed '/^UUID/ahello\nlinux' fstab 	##在UUID开头的行的后面添加‘hello\nlinux’
##在UUID开头的行的后添加‘hello linux’
[root@grep_sed mnt]# sed '/^UUID/a hello linux' fstab 

#
# /etc/fstab
# Created by anaconda on Wed May  7 01:22:57 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 /                       xfs     defaults        1 1
hello linux
GVBHJNKMLUUID
##在UUID开头的行的后面添加‘hello换行加linux’
[root@grep_sed mnt]# sed '/^UUID/a hello\n linux' fstab 

#
# /etc/fstab
# Created by anaconda on Wed May  7 01:22:57 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 /                       xfs     defaults        1 1
hello
 linux
GVBHJNKMLUUID

在这里插入图片描述

##c 模式操作——按照要求改变行

sed '/^#/chello\nlinux' fstab		##将#开头的行的内容用‘hello\nlinux’替换
##将#开头的行的内容用‘hello\nlinux’替换
[root@grep_sed mnt]# sed '/^#/ c hello \n linux' fstab 

hello 
 linux
hello 
 linux
hello 
 linux
hello 
 linux
hello 
 linux
hello 
 linux
hello 
 linux
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 /                       xfs     defaults        1 1
GVBHJNKMLUUID

在这里插入图片描述

##w 模式操作——按照要求写入行

sed '/^#/w /mnt/testfile' fstab		##将fstab中以#为开头的行整合到/mnt/testfile中
sed -n '/^#/w /mnt/testfile' fstab	##不显示
sed '6r/mnt/linux' fstab		##将/mnt/linux中的所有内容整合到fstab的第六行中
####将fstab中以#为开头的行整合到testfile中
[root@grep_sed mnt]# sed '/^#/w textfile' fstab 

#
# /etc/fstab
# Created by anaconda on Wed May  7 01:22:57 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 /                       xfs     defaults        1 1
GVBHJNKMLUUID
##查看有什么文件
[root@grep_sed mnt]# ls
file   file1.rej  file.path  hosts  passwd
file1  file.orig  fstab      num    textfile
##查看 textfile 的内容
[root@grep_sed mnt]# cat textfile 
#
# /etc/fstab
# Created by anaconda on Wed May  7 01:22:57 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
##将/mnt/linux中的所有内容整合到fstab的第六行中
[root@grep_sed mnt]# sed '6rpasswd' fstab 

#
# /etc/fstab
# Created by anaconda on Wed May  7 01:22:57 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 /                       xfs     defaults        1 1
GVBHJNKMLUUID 

在这里插入图片描述

##i 模式操作——插入

sed '/^UUID/ihello\nlinux' fstab	##在UUID开头的行的前面添加‘hello\nlinux’
[root@grep_sed mnt]# sed '/^UUID/ihello\nlinux' fstab

#
# /etc/fstab
# Created by anaconda on Wed May  7 01:22:57 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
hello
linux
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 /                       xfs     defaults        1 1
GVBHJNKMLUUID

在这里插入图片描述

##sed的其他用法
(1)显示UUID开头的行是第几行——sed -n ‘/^UUID/=’ fstab
[root@grep_sed mnt]# sed -n ‘/^UUID/=’ fstab
9
在这里插入图片描述
(2)显示UUID开头的行并标号——sed -n -e ‘/^UUID/p’ -e ‘/^ UUID/=’ fstab
[root@grep_sed mnt]# sed -n -e ‘/^UUID/p’ -e ‘/^UUID/=’ fstab
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
9
在这里插入图片描述
(3)将所有的:转化为@@—— sed ‘s/?@@/g’ passwd
[root@grep_sed mnt]# sed ‘s/?@@/g’ passwd
root@@x@@0@@0@@root@@/root@@/bin/bash
bin@@x@@1@@1@@bin@@/bin@@/sbin/nologin
daemon@@x@@2@@2@@daemon@@/sbin@@/sbin/nologin
adm@@x@@3@@4@@adm@@/var/adm@@/sbin/nologin
lp@@x@@4@@7@@lp@@/var/spool/lpd@@/sbin/nologin
sync@@x@@5@@0@@sync@@/sbin@@/bin/sync
shutdown@@x@@6@@0@@shutdown@@/sbin@@/sbin/shutdown
halt@@x@@7@@0@@halt@@/sbin@@/sbin/halt
mail@@x@@8@@12@@mail@@/var/spool/mail@@/sbin/nologin
gdm@@x@@42@@42@@@@/var/lib/gdm@@/sbin/nologin
gnome-initial-setup@@x@@993@@991@@@@/run/gnome-initial-setup/@@/sbin/nologin
tcpdump@@x@@72@@72@@@@/@@/sbin/nologin
在这里插入图片描述

(4)将1-3行的:转化为@@—— sed ‘s/?@@/g’ passwd
[root@grep_sed mnt]# sed ‘1,3s/?@@/g’ passwd
root@@x@@0@@0@@root@@/root@@/bin/bash
bin@@x@@1@@1@@bin@@/bin@@/sbin/nologin
daemon@@x@@2@@2@@daemon@@/sbin@@/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
halt❌7:0:halt:/sbin:/sbin/halt
mail❌8:12:mail:/var/spool/mail:/sbin/nologin
gdm❌42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup❌993:991::/run/gnome-initial-setup/:/sbin/nologin
tcpdump❌72:72:?:/sbin/nologin
在这里插入图片描述

(5)以adm开头的行到shut开头的行中:转化为@@——sed ‘/adm/,/shut/s/?@@/g’ passwd
[root@grep_sed mnt]# sed ‘/adm/,/shut/s/?@@/g’ passwd
root❌0:0:root:/root:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm@@x@@3@@4@@adm@@/var/adm@@/sbin/nologin
lp@@x@@4@@7@@lp@@/var/spool/lpd@@/sbin/nologin
sync@@x@@5@@0@@sync@@/sbin@@/bin/sync
shutdown@@x@@6@@0@@shutdown@@/sbin@@/sbin/shutdown
halt❌7:0:halt:/sbin:/sbin/halt
mail❌8:12:mail:/var/spool/mail:/sbin/nologin
gdm❌42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup❌993:991::/run/gnome-initial-setup/:/sbin/nologin
tcpdump❌72:72:?:/sbin/nologin
在这里插入图片描述

执行两个时用;例如:sed ‘/adm/,/shut/s/?@@/g;1,3s/: /@@/g’ passwd

(6)在每行行后插入一个空白行——sed G passwd

[root@grep_sed mnt]# sed G passwd 
root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

gdm:x:42:42::/var/lib/gdm:/sbin/nologin

gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

在这里插入图片描述

(7)在除最后一行外的每行行后插入一个空白行——sed ‘$!G’ passwd

[root@grep_sed mnt]# sed '$!G' passwd 
root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

gdm:x:42:42::/var/lib/gdm:/sbin/nologin

gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

在这里插入图片描述
(8)在空白行前添加行号—— sed = passwd
[root@grep_sed mnt]# sed = passwd
1
root❌0:0:root:/root:/bin/bash
2
bin❌1:1:bin:/bin:/sbin/nologin
3
daemon❌2:2:daemon:/sbin:/sbin/nologin
4
adm❌3:4:adm:/var/adm:/sbin/nologin
5
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
6
sync❌5:0:sync:/sbin:/bin/sync
7
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
8
halt❌7:0:halt:/sbin:/sbin/halt
9
mail❌8:12:mail:/var/spool/mail:/sbin/nologin
10
gdm❌42:42::/var/lib/gdm:/sbin/nologin
11
gnome-initial-setup❌993:991::/run/gnome-initial-setup/:/sbin/nologin
12
tcpdump❌72:72:?:/sbin/nologin
在这里插入图片描述
(9)每行行前添加行号——sed = passwd | sed ‘N;s/\n//g’
[root@grep_sed mnt]# sed = passwd | sed ‘N;s/\n//g’
1root❌0:0:root:/root:/bin/bash
2bin❌1:1:bin:/bin:/sbin/nologin
3daemon❌2:2:daemon:/sbin:/sbin/nologin
4adm❌3:4:adm:/var/adm:/sbin/nologin
5lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
6sync❌5:0:sync:/sbin:/bin/sync
7shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
8halt❌7:0:halt:/sbin:/sbin/halt
9mail❌8:12:mail:/var/spool/mail:/sbin/nologin
10gdm❌42:42::/var/lib/gdm:/sbin/nologin
11gnome-initial-setup❌993:991::/run/gnome-initial-setup/:/sbin/nologin
12tcpdump❌72:72:?:/sbin/nologin

在这里插入图片描述
(10)显示最后一行——sed -n ‘KaTeX parse error: Expected 'EOF', got '#' at position 30: …t@grep_sed mnt]#̲ sed -n 'p’ passwd
tcpdump❌72:72:?:/sbin/nologin

在这里插入图片描述

报告生成器——awk

一个 awk脚本通常由:BEGIN语句块、能够使用模式匹配的通用语句块、END语句块3部分组成,这三个部分是可选的。任意一个部分都可以不出现在脚本中,脚本通常是被单引号或双引号中;

(1) BEGIN语句块在awk开始从输入流中读取行之前被执行,这是一个可选的语句块,比如变量初始化、打印输出表格的表头等语句通常可以写在BEGIN语句块中。
(2)pattern语句块中的通用命令是最重要的部分,它也是可选的。如果没有提供pattern语句块,则默认执行{ print },即打印每一个读取到的行,awk读取的每一行都会执行该语句块。
(3)END语句块在awk从输入流中读取完所有的行之后即被执行,比如打印所有行的分析结果这类信息汇总都是在END语句块中完成,它也是一个可选语句块。

##awk -F——指定分隔符
##以:为分隔符,打印passwd文件的的第一列字符
[root@shell_awk mnt]# awk -F : ‘{print $1}’ passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
dbus
polkitd
avahi
在这里插入图片描述
##以:为分隔符,打印第一列和第二列,不出现:分隔符
[root@shell_awk mnt]# awk -F : ‘{print $1$2}’ passwd
rootx
binx
daemonx
admx
lpx
syncx
shutdownx
haltx
mailx
operatorx
gamesx
ftpx
nobodyx
在这里插入图片描述

##以:为分隔符,在打印前先打印WESTOS,然后在打印第一列
[root@shell_awk mnt]# awk -F : ‘BEGIN{print “WESTOS”}{print $1}’ passwd
WESTOS
root
adm
sync
shutdown
halt
mail
operator
games
ftp
gdm
gnome-initial-setup
tcpdump
root ROOT njvlksdvmROOT SKDVMS root
ROOT SDKLJNVCS root
ROOT root sdvkn ROOT root
在这里插入图片描述

##以:为分隔符,先决定n=1,然后答应第一列 n(其中n=1)——相当于打印第一列后加1
[root@shell_awk mnt]# awk -F : ‘BEGIN{n=1}{print $1,n}’ passwd
root 1
adm 1
sync 1
shutdown 1
halt 1
mail 1
operator 1
games 1
ftp 1
gdm 1
gnome-initial-setup 1
tcpdump 1
root ROOT njvlksdvmROOT SKDVMS root 1
ROOT SDKLJNVCS root 1
ROOT root sdvkn ROOT root 1
在这里插入图片描述

##打印第一列加上序号
[root@shell_awk mnt]# awk -F : ‘BEGIN{n=1}{print $1,n++}’ passwd
root 1
adm 2
sync 3
shutdown 4
halt 5
mail 6
operator 7
games 8
ftp 9
gdm 10
gnome-initial-setup 11
tcpdump 12
root ROOT njvlksdvmROOT SKDVMS root 13
ROOT SDKLJNVCS root 14
ROOT root sdvkn ROOT root 15
在这里插入图片描述

##加上序号打印第一列
[root@shell_awk mnt]# awk -F : ‘BEGIN{n=1}{print n++,$1}’ passwd
1 root
2 adm
3 sync
4 shutdown
5 halt
6 mail
7 operator
8 games
9 ftp
10 gdm
11 gnome-initial-setup
12 tcpdump
13 root ROOT njvlksdvmROOT SKDVMS root
14 ROOT SDKLJNVCS root
15 ROOT root sdvkn ROOT root
在这里插入图片描述

##加上序号打印第一列,最后显示行数(NR);(NF列)
[root@shell_awk mnt]# awk -F : ‘BEGIN{n=1}{print n++,$1}END{print NR}’ passwd
1 root
2 adm
3 sync
4 shutdown
5 halt
6 mail
7 operator
8 games
9 ftp
10 gdm
11 gnome-initial-setup
12 tcpdump
13 root ROOT njvlksdvmROOT SKDVMS root
14 ROOT SDKLJNVCS root
15 ROOT root sdvkn ROOT root
15

##输出包含bash行的第一个字符
[root@shell_awk mnt]# awk -F : ‘/bash/{print $1}’ passwd
root
在这里插入图片描述
##打印第四行的第三个字符
[root@shell_awk mnt]# awk -F : ‘NR==4{print $1}’ passwd
shutdown
在这里插入图片描述

##打印第四行到第八行的内容
[root@shell_awk mnt]# awk -F : ‘NR>=4&&NR<=8{print}’ passwd
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
halt❌7:0:halt:/sbin:/sbin/halt
mail❌8:12:mail:/var/spool/mail:/sbin/nologin
operator❌11:0:operator:/root:/sbin/nologin
games❌12?games:/usr/games:/sbin/nologin
在这里插入图片描述

##打印第四行和第八行
[root@shell_awk mnt]# awk -F : ‘NR4||NR8{print}’ passwd
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
games❌12?games:/usr/games:/sbin/nologin
在这里插入图片描述

##输出a+8的值
[root@shell_awk mnt]# awk ‘BEGIN{a=13;print a+8}’
21
在这里插入图片描述

##输出不是以a-d开头的行
[root@shell_awk mnt]# awk ‘/[a-d]/{print}’ passwd
root❌0:0:root:/root:/bin/bash
sync❌5:0:sync:/sbin:/bin/sync
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
halt❌7:0:halt:/sbin:/sbin/halt
mail❌8:12:mail:/var/spool/mail:/sbin/nologin
operator❌11:0:operator:/root:/sbin/nologin
games❌12?games:/usr/games:/sbin/nologin
ftp❌14:50:FTP User:/var/ftp:/sbin/nologin
gdm❌42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup❌993:991::/run/gnome-initial-setup/:/sbin/nologin
tcpdump❌72:72:?:/sbin/nologin
root ROOT njvlksdvmROOT SKDVMS root
ROOT SDKLJNVCS root
ROOT root sdvkn ROOT root
在这里插入图片描述
##输出以r开头或者以nologin结尾的行
[root@shell_awk mnt]# awk ‘/^r||nologin$/{print}’ passwd
root❌0:0:root:/root:/bin/bash
adm❌3:4:adm:/var/adm:/sbin/nologin
mail❌8:12:mail:/var/spool/mail:/sbin/nologin
operator❌11:0:operator:/root:/sbin/nologin
games❌12?games:/usr/games:/sbin/nologin
ftp❌14:50:FTP User:/var/ftp:/sbin/nologin
gdm❌42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup❌993:991::/run/gnome-initial-setup/:/sbin/nologin
tcpdump❌72:72:?:/sbin/nologin
root ROOT njvlksdvmROOT SKDVMS root
在这里插入图片描述

##以g开头并且以nologin结尾的行
[root@shell_awk mnt]# awk ‘/^g/&&/nologin$/{print}’ passwd
games❌12?games:/usr/games:/sbin/nologin
gdm❌42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup❌993:991::/run/gnome-initial-setup/:/sbin/nologin
在这里插入图片描述

##打印第一列以root结尾的行

[root@shell_awk mnt]# awk -F : '$1~/root$/{print}' passwd
root ROOT njvlksdvmROOT SKDVMS  root
ROOT SDKLJNVCS root
ROOT root sdvkn ROOT root

在这里插入图片描述

##打印第六列含有bin的行

[root@shell_awk mnt]# awk -F : '$6~/\<bin$/{print}' /etc/passwd 
bin:x:1:1:bin:/bin:/sbin/nologin

在这里插入图片描述

##打印第六列不是以bin结尾的行

[root@shell_awk mnt]# awk -F : '$6!~/\<bin$/{print}' passwd
root:x:0:0:root:/root:/bin/bash
adm:x:3:4:adm:/var/adm:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
root ROOT njvlksdvmROOT SKDVMS  root
ROOT SDKLJNVCS root
ROOT root sdvkn ROOT root

在这里插入图片描述

Cadence 开发合集【总目录】 专栏主要介绍Cadence原理图和PCB信号完整性电源完整性仿真相关的内容,更加注重实操,以帮助大家轻松上手并不断提高;在开始专栏的更新前,博主先列出专栏的大纲,以供大家参考。大家直接点击大纲中的蓝色标题即可轻松传送。 ............ 阅读详情

相关推荐

APP抓包-代理转发绕过反代理+Xposed绕过证书校验

而这里的牛牛不止设置了反代理还设置了证书校验,一闪而过的三个数据包就是在校验证书。而proxifier工具的转发机制获取的是网络接口出口数据,相当于是在网络接口设代理。这个时候就可以在夜神打开牛牛开始抓包了,打开牛牛可以看到proxifier有夜神流量通过。关闭代理之后牛牛就正常了,可恶的牛牛啊,这样我没办法抓包啊,怎么办啊。模拟器开启代理,burp开启监听。打开牛牛app,牛牛不在报错。牛牛app检测的是系统代理,也就是在模拟器或手机上设置的代理。再在浏览器下载两个模块,在夜神安装,用来屏蔽证书校验。

xiaoheizi的博客 7532

grep命令

准备test文件,内容如下: dlf test dlfthink www.baidu.com TEST 123 Dlf's lemon grep Grep abc abc123abc 123dlf123 [www.baidu.com] 1) grep -i "test" test.txt 搜索出含有“test” 字符串(-i:不区分大小...

banze8320的博客 415

HWSD中国土壤数据库

T_PH_H2O: Real (酸碱度) T_CEC_CLAY: Real (粘性层土壤的阳离子交换能力);T_CEC_SOIL: Real (土壤的阳离子交换能力) T_BS: Real (基本饱和度);T_CACO3: Real (碳酸盐或石灰含量) T_CASO4: Real (硫酸盐含量);ADD_PROP: Real (土壤单元中与农业用途有关的特定土壤类型);T_USDA_TEX: Real (USDA土壤质地分类);T_REF_BULK: Real (土壤容重);

地球资源数据云的官方博客 4651

Linux——— grep命令详解(狠狠爱住)

grep。

m0_74107848的博客 4889

手把手教你搞定Pattern Recognition Letters的LaTeX投稿(附elsarticle.cls生成避坑指南)

本文详细指导如何在Pattern Recognition Letters(PRL)期刊上使用LaTeX进行投稿,特别针对elsarticle.cls文件的生成与常见问题提供避坑指南。从模板准备、文件上传到投稿后的验证,系统梳理全流程技术要点,帮助研究者高效完成学术论文投稿。

weixin_33824385的博客 430

微信小程序 - 解决请求报错 request:fail errcode:-201 cronet_error_code:-201 error_msg:net::ERR_CERT_DATE_INVALID

微信小程序报错“request:fail errcode:-201 cronet_error_code:-201 error_msg:net::ERR_CERT_DATE_INVALID“,微信小程序请求报错,微信小程序errcode:-201,服务器报错,无法调用接口,微信小程序真机https请求失败,微信小程序wx.request接口报错,小程序真机调试运行接口都报错了,真机测试下网络请求都不行了且报错,证书没问题依旧报错,检查HTTPS证书,ssl证书,使用浏览器测试访问证书是正常的,不是证书问题,请

🏆 前端领域优质创作者 1万+

grep命令详解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

weixin_45596153的博客 2026

Holosoma 开源人形机器人强化学习训练部署框架

Holosoma是一个综合性人形机器人框架,支持强化学习策略的训练、部署和动作重定位。该框架兼容多种模拟器(IsaacGym、IsaacSim、MuJoCo等)和机器人(Unitree G1、Booster T1),提供运动控制和全身追踪功能。主要特性包括:跨模拟器训练评估、Wandb集成、多GPU支持、自定义奖励权重和观测噪声配置。推理模块支持实体机器人部署和MuJoCo仿真测试。动作重定位工具可将人体动作数据转换为机器人动作,支持单序列和批量处理。文档详细介绍了训练配置、评估方法和高级功能,如课程学习和

2506_90492529的博客 1829

Linux命令学习(一)grep命令

q:静默模式,不输出任何信息,当我们只关心有没有匹配到,却不关心匹配到什么内容时,我们可以使用此命令,然后,使用”echo $?-Cx:在输出的时候包含结果所在行之前和之后的指定行数,这里指之前和之后的x行,C:context。-Bx:在输出的时候包含结果所在行之前的指定行数,这里指之前的x行,B:before。-Ax:在输出的时候包含结果所在行之后的指定行数,这里指之后的x行,A:after。-c:统计匹配到的行数,注意,是匹配到的总行数,不是匹配到的次数。-e:实现多个选项的匹配,逻辑or关系。

zoro_soro的博客 1654

《AgentScope-Java 深入浅出教程》第10章 RAG 知识检索

RAG(Retrieval-Augmented Generation,检索增强生成)是一种将信息检索与文本生成相结合的技术架构。它通过从外部知识库中检索相关文档,将检索到的信息作为上下文注入到语言模型的提示中,从而增强模型的回答质量。│ RAG 工作流程 ││ ││ 用户问题 向量检索 上下文增强 生成回答 ││ ▼ ││ │ A │ ││ ││ 1. 接收问题 ││ 2. 将问题转换为向量,在知识库中检索相似文档 ││ 3. 将检索到的文档作为上下文添加到提示词中 │。

步子哥的博客 462

Arduino ESP32S3开发环境搭建 ------ 在线下载安装包Failed解决方案

本文介绍了Arduino ESP32 S3开发环境搭建的离线解决方案。

张一西的博客 1018

grep 的用法

命令:grep -nr 查找内容 *grep是Linux命令行下常用于查找过滤文本文件内容的命令。

weixin_45615278的博客 2605

Android oom_adj 更新原理(一)

通过之前的两篇博文《lmkd 机制详解》和《lmkd中adj score的算法剖析》中,根据计算出来的 min_score_adj 选择大于该值的 oom_adj 的进程进行 kill 处理。oom_adj 随着应用状态的不同其值也是伴随着变化的。本文将通过源码剖析 oom_adj 更新的原理。

私房菜 2655

shell中的文本处理正则表达式(grep,sed,awk,linux中三剑客)

1.什么是正则表达式 正则表达式,又称为规则表达式,在代码中常简写为regex,regexp或RE,计算机科学的一个概念 正则表达式通常被用来检索,替换那些符合某个模式(规则)的文本 许多程序设计语言都支持利用正则表达式进行字符串操作,例如在Perl内建了一个功能强大的正则表达式引擎 正则表达式这个概念最初是由Unix中的工具软件,例如sed和grep普及开的 正则表达式常缩写成regex,单数...

Rapig1的博客 358

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Linux系统下shell中的文本处理的正则表达式(grep+sed+awk)

1.GREP(Global search regular expression and print out the line的缩写) 是一种强大的文本搜索工具 它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行 Unix的grep家族包括grep、egrep和fgrep,Windows系统下类似命令FINDSTR #1)GREP的模式(贪婪模式的匹配) 贪婪模式:只要含有被指定的关键...

Garfield777的博客 264

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

shell中的文本处理正则表达式(grep+sed+awk:俗称linux中的三剑客)

文章目录一、正则表达式二、grep文本过滤命令1、grep是什么2、grep 的格式三、sed行编辑器(stream editor)1、sed命令2、Sed 命令格式3、sed 对字符的处理四、awk(报告生成器)1、什么是awk(报告生成器)2、awk的用法 一、正则表达式 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE...

ranrancc_的博客 665

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

shell中的文本处理正则表达式(grep+sed+awk linux三剑客)

1.正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一定字符、及这些特定字符的组合,组成一个“规则字符串”这个“规则字符串”用来表达对字符串的一种过滤逻辑 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表...

qq_42024433的博客 443

Linux文本处理三剑客(grep,sed,awk)

grep,擅长单纯的查找或匹配文本内容 sed,更适合编辑、处理匹配到的文本内容 awk,更适合格式化文本内容,对文本进行复杂处理。

qq_43813373的博客 2439

Shell 编程之正则表达式与编程三剑客(awk,sed,grep)

文章目录一、正则表达式1.1、正则表达式的定义1.2、基础正则表达式1.3、扩展正则表达式二、文本处理器2.1、grep2.1.1、grep 常用用法示例2.2、sed2.2.1、sed 工具概述2.2.2、sed 命令格式2.2.3、sed 常见命令选项2.2.4、sed 常用用法示例2.3、awk2.3.1、awk 常见用法2.3.2、awk 工作原理2.3.3、awk 命令格式2.3.4、 awk 常用用法示例 一、正则表达式 1.1、正则表达式的定义 正则表达式又称正规表达式、常规表达式。在代码中

优快云著名博主 778

自学shell编程——第5讲(正则表达式+grep、sed、awk的使用)

自学shell编程——第5讲(正则表达式+grep的使用) 这是shell编程语言,python语言重点的部分。比较好理解,但是难应用,要多多练习,有时候会事半功倍。 1. 正则表达式RE RE本质上是特殊符号组成的一个式子,帮助你模糊查询 可以用到RE的地方很多,常见的命令有grep。当然,在某些情况下也可以用。比如,你想删除这个目录下,所有以.sh结尾的文件。你可以使用rm *.sh。 grep标准使用格式:** grep 正则表达式 寻找对象文件 参数 。这样查找的结果会直接输出到终端,你后面可以使

weixin_44616693的博客 449

【Shell编程 / 6】正则表达式与模式匹配(grep、sed、awk)

正则表达式(Regular Expression,即Regex)用于匹配字符串中的特定模式。扩展正则表达式(Extended Regular Expression, ERE)比基本正则表达式功能更强大,支持更多的元字符和模式。基本正则表达式(Basic Regular Expression, BRE)是一种较为简单的正则表达式形式,主要用于匹配基本的字符串模式。是一个强大的文本处理工具,可以基于正则表达式对文本进行模式匹配和操作。是一种强大的文本搜索工具,支持基本和扩展正则表达式。参数可以使用扩展正则。

卜及中的博客 1326

Linux操作系统:Shell与文本处理

在进入具体的文本处理工具之前,我们需要对 Shell 的基础知识有一定的了解。Shell 是 Linux 和 Unix 系统中的命令行解释器,它不仅能执行系统命令,还能通过编写脚本来自动化执行任务。在 Shell 脚本中,可以使用上面介绍的所有命令来处理文件和文本。在 Linux 中,文本处理工具种类繁多,每种工具都有其独特的应用场景。是用来在文件中搜索文本模式的工具,它支持正则表达式,可以快速过滤出包含特定模式的行。在 Linux 中,重定向和管道是强大的功能,能将多个命令组合在一起进行复杂的操作。

2401_82550784的博客 1526

shell编程之正则表达式

正则表达式(regular expression, RE)是一种字符模式,用于在查找过程中匹配指定的字符。在大多数程序里,正则表达式都被置于两个正斜杠之间;例如/l[oO]ve/就是由正斜杠界定的正则表达式,它将匹配被查找的行中任何位置出现的相同模式。在正则表达式中,元字符是最重要的概念。 工具:被vim、sed、awk、grep调用 场景:mysql、oracle、php、python ,Apache,Nginx... 需要正则 一、元字符 元字符是这样一类字符,它们表达的是不同于字面本身的含义.

yiweii的博客 1796

shell编程入门--文本处理工具grep、sed、awk

shell脚本三大文本处理工具: grep    文本过滤命令 sed    行编辑器 awk    报告生成器 常用的正则表达式如下:  元字符  功能  示例  ^  行首定位符  /^my/ 匹配所有以my开头的行  $  行尾...

weixin_40172997的博客 342

学习云计算运维之shell三剑客(grep、sed、awk)一篇就够了!!!

本篇博客介绍了云计算运维当场通常会使用到的工具,正则三剑客(grep、sed、awk)以及sort和uniq语句,分别一一举例。

下一个艺术家 1987

shell中的文本处理之grep,sed,awk

1 grep文本过滤命令 grep中的正则表达式 grep ^root passwd #过滤以root开头的行 grep root$ passwd #过滤以root结尾的行 grep -i ^root passwd #不区分大小写,过滤以root开头的行 grep -E "^root | root$" passwd #过滤以root开头或root结尾的行,-E表示扩展正则表达式 grep -E -...

林长有的博客 284
上一篇: shell中常用的基本命令(diff、patch、cut、sort、uniq、&&与||、test、tr)
下一篇: python的简单介绍
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值