shell三剑客之awk、grep

awk

  • awk声明

awk也是一个编辑工具,他可以在无交互情况下实现复杂的文本操作。

  • 格式
    awk 选项 ‘模式或条件{编辑指令}’文件1 文件2
  • awk执行流程
    (1)首先执行BEGIN{}区域块中的初始化操作
    (2)从指定的数据文件中循环读取一个数据行(自动更新NF、NR、$0 、$1等内建变量的值),并执行’模式或条件{编辑指令}’。
    (3)最后执行END{}区域中的后续处理操作
  • awk内置变量
FS指定每行文本的字符分隔符,缺省为空格或制表位
NF当前处理的行的字段个数(列数)
NR当前处理的行的序数(行数)
$0当前处理的行的整行内容
$n当前处理的第n个字段(第n列)
  • awk的使用
    在使用过程中,可以使用逻辑操作符&&(与)、||(或)、!(非);还可以进行简单地数学运算,如:+、-、*、/、%、^分别表示为加、减、乘、除、取余、乘方
  • 示例
awk '{print}' test.txt (效果等同cat)
awk -F: '{print$1,$2,$4,$NF}' /etc/passwd >> user.txt  #输出第一,二,四,最后一列
awk '(NR%2)==0{print}' /etc/passwd       #输出文件中偶数行内容

grep

1.grep声明
grep主要是应用于搜索,过滤作用。它能使用正则表达式搜索文本,并把匹配的行打印出来。

2.格式
grep [options]

3.主要参数
[options]主要参数:
-c:只输出匹配行的计数。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
正则表达式选择与解释:
-E, --extended-regexp PATTERN 是一个可扩展的正则表达式(缩写为 ERE)
-F, --fixed-strings PATTERN 是一组由断行符分隔的定长字符串。
-G, --basic-regexp PATTERN 是一个基本正则表达式(缩写为 BRE)
-P, --perl-regexp PATTERN 是一个 Perl 正则表达式
-e, --regexp=PATTERN 用 PATTERN 来进行匹配操作
-f, --file=FILE 从 FILE 中取得 PATTERN
-i, --ignore-case 忽略大小写
-w, --word-regexp 强制 PATTERN 仅完全匹配字词
-x, --line-regexp 强制 PATTERN 仅完全匹配一行
-z, --null-data 一个 0 字节的数据行,但不是空行
输出控制:
-m, --max-count=NUM NUM 次匹配后停止
-b, --byte-offset 输出的同时打印字节偏移
-n, --line-number 输出的同时打印行号
–line-buffered 每行输出清空
-H, --with-filename 为每一匹配项打印文件名
-h, --no-filename 输出时不显示文件名前缀
–label=LABEL 将LABEL 作为标准输入文件名前缀

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值