正则表达式

正则表达式

grep

grep 关键字 文件   
grep -v 关键字 文件      #取反,不带关键字
grep  -i  关键字 文件    #不区分大小写
grep  -o  关键字 文件    #只显示关键字
grep  -on  关键字 文件    #只显示关键字,显示行号
grep  -n  关键字 文件    #显示行号,还有一整行
gre -E 正则表达式 文件 == egerp 正则表达式 文件
[09]  只有09
grep '^[^a-zA-Z]'    注意二者区别
grep '[^a-zA-Z]'

grep


这里写图片描述
这里写图片描述

正则表达式

^   匹配开头
$   匹配结尾
[]   匹配范围   #[0-9][A-Z][a-z]
[^0-9]  #所有非数字  ,^表示取反
[a-z][0-9]*      0个或多个小写
[a-z]+     前面的字母出现一次或多次
egrep 'o+' 文件
[a-z]?    前面的字母出现0次或一次
r.o      #r与o之间任意一个字符  
.*     #任意一个字符出现多次
grep 'o\{2\}' 文件  指定过滤出的字符的出现次数
[a-z0-9A-Z]+@[a-z0-9A-Z]+\.[a-z0-9A-Z]*    邮箱匹配

sed

格式:sed -n ‘n’p 文件

选项与参数:

-n 使用安静模式

-e 直接在命令

-f 将sed动作写到文件内

-r sed的动作 支持的是

-i 直接修改

动作:

a:新增 a的后面可以接字符串,而这些字串会在新的一行出现

这里写图片描述

c:取代 c的后面可以接字符串,这些字符串可以取代n1,n2之间的行

这里写图片描述

d:删除

sed ‘3d’ file #删除第三行
sed ‘1,3d’ file #删除,1-三行
sed ‘1d;3d;5d’ file #删除第一行第三行第五行
sed ‘/^$/d’ #删除空行

sed ‘/abc/d’ #删除所有包含abc的行
sed ‘/abc/,/def/d’ 删除包含abc和def的行,包括其自身
sed ‘1,/def/d’ #删除第一行到def的行,包括其自身的行
sed ‘/abc/,+3d’ #删除含有abc的行之后再删三行
sed ‘/abc/~3d’ #从含有abc的行开始,总共删除三行
sed ‘1~2d’ #从第一行开始,每两行删除一行,删除奇数行
sed ‘2~2d’ #从第2行开始,每两行删除一行,删除偶数行
sed ‘$d’ #删除最后一行
sed ‘/dd|cc/d’ #删除带有cc或者dd的行

i:插入 i的后面可以接字符串,这些字符串会在上一行出现

这里写图片描述

s 替换 可以直接进行取代,s经常匹配正则模式

这里写图片描述


这里写图片描述


sed 's/[0-9]//g' 文件 g代表全局 ,如何删除文档中的数字

sed 's#[0-9]##g' 文件 g代表全局 ,如何删除文档中的数字 /可以用#或者@代替

sed 's/[a-zA-Z]//g' 文件 如何删除文档中的字母

  • 打印某行

    • 打印所有行

    sed -n '1,$'p 文件

    • 区间打印

    sed -n '1,5'p 文件

  • 打印包含某个字符串的行

    • -e选项实现多个行为
  • 删除某些行

sed '1'd 文件

sed '1,3'd 文件

sed '2d;4d' 文件

sed '/root/'d 文件

  • 替换字符或者字符串
  • 调换两个字符串的位置
  • 直接修改文件的内容

awk

以空格为默认分隔符将每行切片,切开的部分在进行分析处理

这里写图片描述

-F 是指定分隔符,如果不加-F选项,则以空格或tab为分隔符

$1是第一个字段

$2是第2个字段

$0是整行

print可以打印自定义的内容,但是自定义的内容要用双引号括起来

head -n5 /etc/passwd | awk -F ':' '{print $1" "$2}'

这里写图片描述

#commands是真正的awk命令,-F是可选的。input-file(s)是待处理的文件。    
在awk中,文件的每一行中,由域分隔符分开的每一项成为一个域,通常,在不指定-F或分隔符的情况下,默认分隔符是空格

#awk工作流程
#读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域
$0则表示所有域,$n代表第几个域
awk常用内置变量
ARGC        命令行参数个数
ARGV        命令行参数排列
ENVIRON     支持队列中系统环境变量的使用
FILENAME    awk浏览的文件名
FNR         浏览文件的记录数,常用(即行号)
FS          设置输入域分隔符,等价于命令行-F选项,常用
NF          浏览记录的域的个数,常用,就是列数
NR          已读的记录数,常用(与FNR比较)
OFS         输出域分隔符,常用
ORS         输出记录分隔符,常用
RS          控制记录分隔符

这里写图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值