linux awk列编辑,Linux awk命令基础

一、简述

awk是一种处理文本文件的语言,是一种强大的文本分析工具,相当于grep查找,sed编辑,在数据分析生成报告方面很强大。

awk适合格式化文本,如果是普通的筛选功能,还是用grep命令吧。

二、使用方法awk [option] '[pattern] {action}' {filenames}  # 行匹配语句 awk '' 只能用单引号

option:选项参数,常用-F,-v

pattern:模式,可以简认为是条件,满足条件的行才会被处理。

action:一系列命令,常用动作print

1.awk命令,最常用的print命令

例:文件log.txt内容

8fa0674712ca

log.txt 4行内容

1.筛选指定内容,$1表示第一个字段,使用默认分隔符

【注:awk是逐行处理文本的,在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。,$0表示所有域,$1表示当前行第一个域,$n表示当前行第n个域】

命令:$ cat log.txt | awk '{print $1}'

8fa0674712ca

输出log.txt的第一列内容

2.筛选指定内容,使用,分隔符(使用“,”分隔符,筛选第2列的内容)

命令:$ cat log.txt | awk -F, '{print $2}'   或者 awk -F, '{print $2}' log.txt

8fa0674712ca

第1行没有逗号,所以没有第二列内容;第2行逗号分隔为2列,3是$1,Are you like awk 是$2

3.awk定义自变量(awk有很多内置变量,需要的自行查阅,比如$n就属于内置变量)

定义自变量a=3,输出$1和$1+a

命令:$ awk '{a = 3;print $1,$1+a}' log.txt

8fa0674712ca

2.awk模式pattern

awk两种特殊模式:BEGIN,END

BEGIN 模式指定了处理文本之前需要执行的操作:

END 模式指定了处理完所有行之后所需要执行的操作:

例:命令加入BEGIN和END

命令:$ awk 'BEGIN {print "开始之前的命令"} {print $0} END {print "结束后命令"}' log.txt

8fa0674712ca

2.普通模式:关系表达式

例:筛选第一列大于3的行

命令:$ awk '$1>3 {print $0}' log.txt

8fa0674712ca

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值