shell的简单文本处理命令

########################
6.文本处理
#######################
(1)grep

-i (条件)##忽略大小写
-v	##条件取反

shell的简单文本处理命令

-c	##统计匹配行数
-q	##静默,无输出成功就是yes失败就是no

shell的简单文本处理命令

-n	##显示匹配结果所在的行号
'^r'	##显示某个文件内容里包含r开头的行

shell的简单文本处理命令
(2)egrep

'^root|^daemon'	##匹配root或daemon开头的行

shell的简单文本处理命令

-m10 ‘/sbin/nologin’ 	##-m后接行数表示从上到下看匹配所有结果前10行

shell的简单文本处理命令

-c '/sbin/nologin' /etc/passwd	##看文件内包含引号内容的行数

shell的简单文本处理命令

'.'	##匹配所有不包括空行

shell的简单文本处理命令

-v	##条件取反	

shell的简单文本处理命令

'^$'	##^表示开头$表示结尾,一开头就结尾就是匹配空行	

shell的简单文本处理命令

'f+'	##匹配至少有一个f的行

shell的简单文本处理命令

'color(ful)?'	##匹配color或colorful

shell的简单文本处理命令

'(we){3}'	##匹配we只匹配三次
'(we){2,4}'	##最少2最多4次
'(we){3,}'	##最少匹配3次无上限

shell的简单文本处理命令

'(we)[ab]'	##匹配we后有a或b
'[A-Z]'		##匹配包含大写字母A到Z任意一个字母的行

shell的简单文本处理命令
(3)cut

-d : -f 1-3 /etc/passwd	##-d指定分隔符号为:-f指定符号左边的内容
(1,3为1和3),(1-3为1到3)

shell的简单文本处理命令

cut -c 1,4 passwd	####显示第一和第四个字符

shell的简单文本处理命令
找出主机ip

ifconfig eth0 | grep "inet " | cut -d " " -f 10

shell的简单文本处理命令

脚本检测ip是否在工作

#!/bin/bash

ping -c1 -w1 172.25.254.$1 &> /dev/null && echo "172.25.254.$1 is up" || echo "172.25.254.$1 is down"

shell的简单文本处理命令

###############
8.sort
################

sort

	(文件)		##按第一个数字大小排序
	-n		##按整体数字大小排序
	-u		##去掉重复数字

shell的简单文本处理命令

	-t		##指定分隔符
	-k		##指定排序的列

shell的简单文本处理命令

	-o		##输出到指定文件中,可以把排序的结果保存下来

shell的简单文本处理命令
###############################
9.uniq命令处理重复字符
###############################

uniq
	-u		##显示唯一的行
	-d		##显示重复的行
	-c		##每行显示一次并统计重复次数

shell的简单文本处理命令
练习:将/tmp目录中的文件取出最大的

ls -Sl /tmp/ | head -2 | cut -d " " -f 9

shell的简单文本处理命令