大家好,欢迎来到IT知识分享网。
目录
1.grep [Globally search a Regular Expression and Print]
1.grep [Globally search a Regular Expression and Print]
grep
grep
–
E
=
egrep
–
E
=
egrep
1.1 grep 格式
grep
匹配条件 处理文件
匹配条件 处理文件
grep root passwd 过滤root关键字grep
–
i
root passwd 后略大小写grep
–
E “
\<
root” passwd root字符之前不能有字符grep
–
E “root
\>
” passwd root字符之后不能有字符grep
–
数字 显示过滤行以及上面几行和下面几行grep
–
n 显示匹配的行所在行号grep
–
A 显示过滤行以及下面几行grep
–
B 显示过滤行以及上面几行grep
–
v 反向过滤
1.2 grep字符数量匹配规则
^
westos 以westos开有westos$ 以westos结尾w….s w开头s结尾中间4个任意字符…..s s结尾前面5个任意字符*
字符出现任意? 0到1次+
1次到任意次{n} n次{m,n} m到n次{
0
,n}
0
–
n
次{,n}
0
–
n
次{m,} 最少m次(lee){
2
} lee字符串出现2次
练习脚本:
请显示系统中能被
su
命令切换的用户名称
su
命令切换的用户名称
2.sed
命令格式
:
:
sed
参数 命令 处理对象
参数 命令 处理对象
sed
参数 处理对象
–
f
处理规则文件
参数 处理对象
–
f
处理规则文件
2.1 对字符的处理
p 显示sed
–
n 5p westos 显示第五行sed
–
n
3
,5p westos 显示3到5
行sed
–
ne “3p;5p westos 显示3和
5
行sed
–
ne
1
,5p westos
1
–
5
行sed
–
ne
‘5,$p’
westos 5到最后以行sed
–
n
‘/^#/p’
fstab 显示以#开头的行
d 删除sed 5d westos 删除第五行sed
‘/^#/d’
fstab 把#开头的行删除sed
‘/^UUID/!d’
fstab 除了UUID以外的行都删除sed
–
e ‘5,$d’
westos 从第五行开始删除到最后
a 添加sed -e ‘5ahello’ sed 5行后添加sed
–
e ‘$a hello world’
fstab 最后一行加sed
–
e ‘$a hello\nworld’
fstab 分行添加sed
–
e ‘/^#/a hello world’
fstab 给#行后添加
c 替换sed
–
e ‘/^#/c hello world’
fstab #行替换sed
‘5chello world’
westos 第五行替换
w 把符合的行写到指定文件中sed
‘/^UUID/w westofile’
westos 把
westos
中
UUID
开头的行写入
westosfile
中
i
插入sed
‘5ihello westos’
westos
![]()
r 整合文件sed
‘5r haha’
westos 将haha文件整合westos文件的5行后
sed
字符替换sed
‘s/://g’
westos 把:换成 全局替换sed
‘s/://’
westos 把每行的第一个:换成sed
‘1,5s/://g’
westos 替换1到5行sed
‘1s/://g’
westos 替换1行sed
‘1s/://g;5s/://g’
westos 替换1行和5行sed
‘/lp/,/shutdown/s/://g’
westos 将lp行到shutdown行的:替换sed
‘s/\///g’
westos 将/替换为 ,/要用/\表示避免反复转义sed
‘s@/@@g’
westos 与上一条作用相同,用@作为定界符sed
‘s@/@@g’
–
i
westos 把sed处理的内容保存到
westos
文件中
练习及脚本
Apache_port.sh
此脚本接入数字
http
的端口就改为此数字
的端口就改为此数字
假设
selinux
为关闭状态
selinux
为关闭状态
例如
:
:
sh Apache_port.sh
ERROR
:
Pleaase input port number following script
!!
:
Pleaase input port number following script
!!
sh Apache_port.sh
8080
8080
apache
的端口会被修改为
8080
的端口会被修改为
8080
3.awk
awk
–
F
分隔符
BEGIN{}{}END{} FILENAME
–
F
分隔符
BEGIN{}{}END{} FILENAME
NR #行数
NF #列数
FILENAME #文件名称本身
westos #westos变量值
“westos” #westos字符串
/
bash$
/
bash$
/
#
条件
条件
/
条件
1
|
条件
2
/
条件
1
|
条件
2
/
#
条件
1
或者条件
2
条件
1
或者条件
2
/
条件
1
/||/
条件
2
/
#
条件
1
或者条件
2
条件
1
/||/
条件
2
/
#
条件
1
或者条件
2
/
条件
1
/&&/
条件
2
/
#
条件
1
并且条件
2
条件
1
/&&/
条件
2
/
#
条件
1
并且条件
2
$
0
#所有的列
0
#所有的列
$
1
#第一列
1
#第一列
$
2
#第二列
2
#第二列
$
3
#第三列
3
#第三列
#
/
etc
/
passwd
文件的第六列没有
home
关键字并且以
bash
结尾的行
/
etc
/
passwd
文件的第六列没有
home
关键字并且以
bash
结尾的行
awk
–
F
:
‘$6!~/home/&&/bash$/{print}’
/
etc
/
passwd
–
F
:
‘$6!~/home/&&/bash$/{print}’
/
etc
/
passwd
课后练习
:
:
统计在系统中能
su
切换的并且用户加目录不在
/
home
下的用户数量
su
切换的并且用户加目录不在
/
home
下的用户数量
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/124979.html