Linux文本处理命令常用用法总结:grep,cut,awk,sed

1.grep

提取符合条件的行
常用用法:

  • grep +字符内容 +文件名 :直接筛选文件中带有指定字符内容的行
  • grep -v 字符内容 +文件名:-v取反 取文件中除了带有指定字符内容的行

2.cut

提取符合条件的列
常用参数:

  • -f 列号:提取第几列
  • -d 分隔符:按照指定分隔符分割列

示例1:
原文件:
在这里插入图片描述
使用cut -f 列数 文件名 提取指定列内容(注意:默认分隔符是tab键)
在这里插入图片描述

示例2:

原文件是/etc/passwd
使用cut -d 指定分隔符是“:”然后提取1,3列内容
在这里插入图片描述

示例3:
结合grep使用:
提取/bin/bash(可以登录)的用户:
在这里插入图片描述

注意:像以下情况,行之间不是连续相同的分隔符,使用cut就不合适了,就需要用到awk了
在这里插入图片描述

3.awk

在说awk之前,简单说一下printf的用法,因为在awk编程中,依赖printf输出结果。

基本用法:
printtf ‘输出类型输出格式’ 输出内容
在这里插入图片描述
在这里插入图片描述
(红线标注是常用的)

用法举例:
在这里插入图片描述
在这里插入图片描述
%s表示字符类型,这是三个一组,然后换行。

printf与print在awk中都支持,它们的区别就是print会在结尾自动加换行符,printf需要手动加\n。

注意:print与printf都是在awk程序之中使用的,Linux中默认是没有这两个命令的

接下来进入正题

awk命令

功能:截取符合条件的列

awk比cut复杂很多,功能也丰富很多
使用格式: (重点看下面的示例就明白了)

在这里插入图片描述

示例1:
在这里插入图片描述
说明:$0表示整行,$1表示第一列,$2表示第二列…
{}前面没有条件,所以是整个文本都执行{}里面的动作,即按照指定格式打印出了Name与Average的数据(文本是一行一行处理的)

示例2:
再来看一下上面cut没能完成的对df-h文件系统信息的提取
在这里插入图片描述
使用awk可以搞定。
再来看一个
在这里插入图片描述
结合了cut 显示了根分区内存使用量,可以应用于比如如果超过某个值,设置报警。

示例3:
加上BEGIN动作:
在程序执行的开始执行一次{}里的动作
在这里插入图片描述

下面这个例子,FS表示指定分隔符;如果不加BEGIN第一行root 0这行是不会做处理的,因为awk处理的时候会读入第一行数据,但这时FS=“:”设置分隔符的动作还没有执行

在这里插入图片描述
下图为不加BEGIN
在这里插入图片描述

示例4:
END:同BEGIN类似,在程序最后执行一次的动作
在这里插入图片描述
在这里插入图片描述
示例5:
支持关系运算

在这里插入图片描述
这里就是筛选出了平均成绩>87的同学

sed

sed是一个轻量级流编辑器。主要用来将数据进行选取,替换,删除,新增。

与Vi编辑器最大的区别是,sed可以与管道符结合使用,如图,后面会详细说;
并且,当我们在shell编程的时候,需要对一个文件内容进行更改,总不能用vim吧,所以shell编程中sed很常用。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

示例1(使用-n输出):
-n只打印后面sed处理的行,2p是文件第2行,如图所见,-p一般都与-n一起使用
在这里插入图片描述
注意:sed中只要不加 -i 选项,操作都不会影响文件本身。

示例2:
动作的使用:
d删除,下图是删除2到3行;
a追加,在第二行之后追加了内容
i插入,在第2行之前插入内容
注意,这些操作都不影响文件内容本身
在这里插入图片描述
示例3:
-i选项,修改文件
下图中,把第4行99替换成了55
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值