grep
默认grep不识别,需要用grep -E或者egrep
grep 匹配条件 处理文件
grep -E = egrep
grep root passwd #过滤root关键字
grep ^root passwd #以root开头
grep root$ passwd #以root结尾
grep -i root passwd #忽略大小写
grep -E "\<root" passwd #root字符之前不能有字符
grep -E "root\>" passwd #root字符之后不能有字符
greo -数字 #显示过滤行以及上面几行和下面几行
grep -n #显示匹配的行所在行号
grep -A #显示过滤行以及下面几行
grep -B #显示过滤行以及上面几行
grep -v #反向过滤
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次
sed
对字符的处理
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' westos #显示以#开头的行
d #删除
sed 5d westos #删除第五行
sed '/^#/d' westos #把#开头的行删除
sed '/^UUID/!d' westos #除了UUID以外的行都删除
sed -e '5,$d' westos
a #添加
sed -e '$a hello world' westos
sed -e '$a hello\nworld' westos
sed -e '/^#/a hello world' westos
i #插入
sed '5ihello westos' westos
w #0oyyyyyyyoo把符合的行写到指定文件中
sed '/^UUID/w westosfile' westos #把westos中UUID开头的行写入westosfile中
r #整合文件
sed '5r haha' westos
sed字符替换
sed 's/:/##/g' westos
sed 's/:/##/' westos
sed 's/:/##/g' westos
sed '1,5s/:/##/g' westos
sed '1s/:/##/g' westos
sed '1s/:/##/g;5s/:/##/g' westos
sed '/lp/,/shutdown/s/:/##/g' westos
sed 's/\//##/g' westos
sed 's@/@##@g' westos
sed 's@/@##@g' -i westos
awk
awk -F 分隔符 BEGIN{}{}END{} FILENAME
NR #行数
NF #列数
FILENAME #文件名称本身
westos #westos变量值
"westos" #westos字符串
/bash$/ #条件
/条件1|条件2/ #条件1或者条件2
/条件1/||/条件2/ #条件1或者条件2
/条件1/&&/条件2/ #条件1并且条件2
$0 #所有的列
$1 #第一列
$2 #第二列
#/etc/passwd文件的第六列没有home关键字并且以bash结尾的行
awk -F : '$6!~/home/&&/bash$/{print}' /etc/passwd