Linux 三剑客之 grep\ sed篇

grep格式

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                                    ##把符合的行写到指定文件中
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

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值