awk 获取列数_号称三剑客之首的awk,开始秀!

109698a63766a0e3fdd1be3d731d3af4.gif

预计阅读时间25分钟

今日目标

  • 熟悉awk的命令行模式基本语法结构

  • 熟悉awk的相关内部变量

  • 熟悉awk常用的打印函数print

  • 能够在awk中匹配正则表达式打印相关的行

一、awk介绍

1. awk概述

  • awk是一种编程语言,主要用于在linux/unix下对文本和数据进行处理,是linux/unix下的一个工具。数据可以来自标准输入、一个或多个文件,或其它命令的输出。

  • awk的处理文本和数据的方式:逐行扫描文件,默认从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。

  • awk分别代表其作者姓氏的第一个字母。因为它的作者是三个人,分别是Alfred Aho、Brian Kernighan、Peter Weinberger。

  • gawk是awk的GNU版本,它提供了Bell实验室和GNU的一些扩展。

  • 下面介绍的awk是以GNU的gawk为例的,在linux系统中已把awk链接到gawk,所以下面全部以awk进行介绍。

2. awk能干啥?

  1. awk用来处理文件和数据的,是类unix下的一个工具,也是一种编程语言

  2. 可以用来统计数据,比如网站的访问量,访问的IP量等等

  3. 支持条件判断,支持for和while循环

二、awk使用方式

1. 命令行模式使用

(一) 语法结构

'命令部分' 文件名

(二)常用选项介绍

  • -F 定义字段分割符号,默认的分隔符是空格

  • -v  定义变量并赋值

(三)  '命名部分说明'

  • 正则表达式,地址定位

'/root/{awk语句}'        sed中:
  • {awk语句1;awk语句2;...}

'{print $0;print $1}'    sed中:
  • BEGIN...END....

'BEGIN{awk语句};{处理中};END{awk语句}'

2. 脚本模式使用

(一) 脚本编写

#!/bin/awk -f 定义魔法字符

(二) 脚本执行

1:
三、 awk内部相关变量
变量 变量说明 备注
$0 当前处理行的所有记录
$1,$2,$3...$n 文件中每行以间隔符号分割的不同字段 awk -F: '{print $1,$3}'
NF 当前记录的字段数(列数) awk -F: '{print NF}'
$NF 最后一列 $(NF-1)表示倒数第二列
FNR/NR 行号
FS 定义间隔符 'BEGIN{FS=":"};{print $1,$3}'
OFS 定义输出字段分隔符,默认空格 '
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值