正则表达式
sell正则表达式:主要用于字符串的模式
分割,匹配查找及替代。用来(包含)匹
配(字符串)
Grep种类(grep fgrep pgrep egrep)
"*"前一个字符匹配0次.或任意多次比如
a*a越多越详细
"·"任意一个字符
"?"左边那一个字符有0个到1个
"?"匹配行首
"$"匹配行尾以小写结尾
"[ ]"匹配中括号里的任意一个字符只匹配
一个字符
"[ ? ]"匹配中括号以外的任意一个字符
"/"转义符
"+ "左边那一个字符有一个到无穷个
{n}左边哪一个字符有n个
{n,m}左边的哪一个字符有n个到m个
{n,}左边哪一个字符有n个到无穷个
[a-z]所有的小写字母
[A-Z]所有的大写字母
[a-zA-Z]所有的大写字母
注意一点是;如果想要匹配的字符就是一本身
话必须放到最后去
Sed(流程编辑器)
Sed [options]`command`in_file [ s]
Command部分
[ 地址1,地址2] [ 函数] [参数(标记) ]
定址的方法1.数字2.正则
数字定址:sed –n`1p`/etc/passwd
正则定址:sed –n`/^root/p`/etc/passwd
扩展正则 加-r 参数或转义
Sed –n`/roo \?/p`/etc/passwd
Sed-rn`/roo?/p`/etc/passwd
?前导字符零个或一个
+前导字符一个或多个
abc \def abc或adef
a(bc |de)f abcf或adef
x \{m \}x出现m次
x \{m, \}x出现m次至多次(至少m次)
x \{m,n \}x出现m次至n次
awk
语法awk[options]`commands`fils
-F定义字段分隔符,默认的分隔符是连续的空格
或字表符使用option中的-F参数定义间隔符号
用$1,$2,$3,等的顺序表示files每行间隔符号分隔
的列不同域
NF变量表示当前记录的字段数
-v定义变量并赋值.也可以借用次方式从sell变量
中引入
Command 读前处理行中处理读后处理
命令{print $0}
读后处理END{awk_cmd1;awk_cmd2;}
AWK变量
NR 当前记录的个数(全部文件连接后的统计)
FNR当前记录的个数(仅为当前文件统计,非全部)
FS字段分隔符默认为连续空格或列表符,可以使用
多个不同的分隔符如-F[;/]
OFS 输出字符的分隔符 默认是空格
# awk -F: 'OFS="=====" {print $1,$2}' /etc/passwd
root=====x
NF当前读入行的字段数
Ors 输出记录的分隔符 默认是换行
#
awk -F: 'ORS="=====" {print $1,$2}' /etc/passwd
root x=====bin x=====
FILENAME当前文件名
引用sell变量的方法