网站建设规划书ppt,哈市住房和建设局网站,软件技术和计算机应用技术哪个好,网站轮播图能用什么软件做Linux之三剑客 Linux的三个命令,主要是用来处理文本,grep,sed,awk,处理日志的时候使用的非常多 1 grep
对文本的内容进行查找
1) 基础用法
语法
grep 选项 内容|正则表达式 文件选项:
-i 不区分大小写
-v 排除,反选
-n 显示行号
-c 统计个数查看文件里包含有的内容
[roo…Linux之三剑客 Linux的三个命令,主要是用来处理文本,grep,sed,awk,处理日志的时候使用的非常多 1 grep
对文本的内容进行查找
1) 基础用法
语法
grep 选项 内容|正则表达式 文件选项:
-i 不区分大小写
-v 排除,反选
-n 显示行号
-c 统计个数查看文件里包含有的内容
[rootlocalhost opt]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin查看内容不区分大小写
[rootlocalhost home]# grep -i root a.txt
root
ROOT查看内容不包含有root
[rootlocalhost home]# grep -v root a.txt
ROOT
asdsad
43543543
/.;.查询root显示行号
[rootlocalhost home]# grep -n root a.txt
1:root
6:root查看包含有root行的个数
[rootlocalhost home]# grep -c root a.txt
2
2) 正则表达式
基础正则表达式
正则表达式作用^以xxx开头$以xxx结尾^$匹配空行.任意一个字符\转义字符*前面的字符出现0-n次.*匹配所有字符[]只能是[]里的字符中任意一个[^]非[]里的字符
拓展正则表达式 egrep ‘拓展正则’ 文件名 正则表达式作用|或前面的字符出现1-n次?前面的字符出现0次或1次()把括号里的内容整体匹配{m,n}前面的字符至少出现m次,最多出现n次
perl正则 grep -P ‘perl正则’ 文件名 正则表达式作用\d所有的数字\s空白字符\w数字字母_
案例
查看/etc/sysconfig/selinux里不包含空行和注释信息[rootlocalhost home]# egrep -v ^$|# /etc/sysconfig/selinux
SELINUXdisabled
SELINUXTYPEtargeted2 sed
1) 概述
sedStream EDitor是一个强大而简单的文本解析转换工具可以读取文本并根据指定的条件对文本内容进行编辑删除、替换、添加、移动等最后输出所有行或者仅输出处理的某些行。
2) 语法
sed 选项 操作 文件3) 查看
查看所有内容
sed -n p 文件名查看第3行内容
sed -n 3p 文件名查看第3-5行内容
sed -n 3,5p 文件名查看偶数行内容
sed -n n;p 文件名查看奇数行内容
sed -n p;n 文件名查看包含有root内容的行
sed -n /root/p 文件名查看包含有a至包含有b的所有内容行
sed -n /a/,/b/p 文件名案例:查看tomcat日志中的2023年6月1日的日志
[rootlocalhost opt]# sed -n /2023-06-15/p logsp2p.log4) 运行过程 5) 新增
a:往指定的行下追加内容
sed 3a 内容 文件名 c:往指定的行替换成新的内容
sed 3c 内容 文件名 i:往指定的行前插入内容
sed 3i 88 aaaaaaaaa a.txt如果想要修改源文件需要在选项使用-i
sed -i 3i 88 aaaaaaaaa a.txt[rootlocalhost home]# cat a.txt
1 asdsadsadsa
2 asdasdsafdg
88 aaaaaaaaa
3 trytuytuyt
4 jhlkjlklj
5 32r3r43t
6 gjuku
7 gjukiuk
8 kiulkiul
9 wdewfew
6) 删除
删除指定的行
[rootlocalhost home]# sed 3d a.txt
1 asdsadsadsa
2 asdasdsafdg
4 jhlkjlklj
5 32r3r43t
6 gjuku
7 gjukiuk
8 kiulkiul
9 wdewfew删除包含有内容的行
sed /内容/d 文件名[rootlocalhost home]# sed /1/d a.txt
2 asdasdsafdg
3 trytuytuyt
4 jhlkjlklj
5 32r3r43t
6 gjuku
7 gjukiuk
8 kiulkiul
9 wdewfew[rootlocalhost home]# sed /1/,/6/d a.txt
7 gjukiuk
8 kiulkiul
9 wdewfew
3 awk 取文本的行或列内容 语法
awk [-F 指定字符] {print 列|行} 文件名
-F省略不写的时候.默认是以空白字符拆分取列
awk {print $0} a.txt 以空白字符拆分 取列
$0 所有的列
$1 取第一列
$2 取第二列
......
$NF 取最后一列
$(NF-1) 取倒数第二列取行
awk NR行数 文件名
NR 当前处理的行号取1-6行
awk NR1 NR6 文件名 且 || 或取行列
awk -F : $3500{print$3} 文件名awk -F : {print $3} /etc/passwd | awk $0500[rootlocalhost home]# awk -F : $3500{print $3} /etc/passwd
999
998注意:条件筛选时使用单引号