shell命令学习3

三大文本处理工具有grep,sed,awk

一、grep的使用

grep的格式      grep  [命令的选项]    ‘匹配字符串’   文件名称

eg:  grep -c 'hello' a.sh   //查找hello这个字符串在文件a.sh里面出现了几次

中间有很多可供选择的选项:

-c    计算找到字符串的次数

-i   忽略大小写

-n    带行号输出

-v    反向选择

-w  匹配单词

-o  只显示匹配的内容

当然grep一般都会配合正则表达式去进行使用

二、sed的应用

sed实现增删查改替换

sed [ ] [命令]  文件

-n    只打印和模式匹配的行,一般与p一起使用

例如·:    sed -n  '2p' a.txt    输出文件中的第二行

-e    进行多行编辑,在连续使用多行sed命令中使用

sed  -e  '/^h $o/ d' -e '2a  new'  a.sh

-f     sed操作命令写在脚本中

-i     直接修改文件

d    删除匹配到的行

p     匹配显示的行

a   在指定的行后面追加文本,可以使用\n实现多行追加

i   在指定行前插入文本,可以支持多行插入

s    查找符合条件的内容并且用新内容进行替换,前后带有分隔符,常用分隔符 /,#,@分隔符后多带替换标记

eg:  sed -i 's/hello/hi/g' a.sh  将hello替换成hi   g表示全局替换   -i直接修改文件

g   全局替换

w    将替换的结果保存在文件中 

查询    -n 结合p

eg:cat a.sh | grep hello |sed -n '1,4p';//输出a.sh中带hello的字符从第一个输出到第四个

eg:cat a.sh | grep hello |sed -n '4p';//输出a.sh中带hello的字符的第四个

 cat user.txt | grep h | sed '数字d'

eg: cat user.txt | grep h | sed '2d' //删除a.sh中带hello的字符的第2个

eg: cat user.txt | grep h | sed '2,4d'   //a.sh中带hello的字符的第二个到第四个

三、awk的使用:

       强大的文本分析工具,它依次处理文件的每一行,并读取里面的每一个字段。

       命令格式:awk [-F 字段分隔符] ‘命令’ 文件     

      工作方式:读入有‘\n’换行符分割的一条记录,然后将记录按指定的字段分隔符划分字段,$0则表示所有字段,$1表示第一个字 段,$n表示第n个字段。

awk脚本:awk是模式和操作组成的

四种模式

正则表达式:使用通配符的扩展集

关系表达式:使用运算符进行操作,可以是字符串或数字的比较测试

模式匹配表达式:用运算符(匹配)和~!不匹配

BEGIN 语句块, pattern语句块, END语句块

awk脚本由begin,end,和其他语句组成

eg: awk 'BEGIN{i=0} {i++} END{print i}' a.sh

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值