Linux之grep、sed、awk

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值