专业编程基础技术教程

网站首页 > 基础教程 正文

Linux环境中的awk命令使用技巧(linux awk命令使用实例)

ccvgpt 2025-04-01 16:18:22 基础教程 4 ℃

简介:AWK是一种优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。awk命名是提取Alfred Aho Peter 、Weinberger和kernighan这 3 位大师姓氏的首字母。awk的最基本功能是在文件或字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作,完整的awk脚本通常用来格式化文本文件中的信息。awk和 sed 命令类似,awk 命令也是逐行扫描文件(从第 1 行到最后一行),寻找含有目标文本的行,如果匹配成功,则会在该行上执行用户想要的操作;反之,则不对行做任何处理。

本文主要介绍的是Linux文字处理awk命令的使用方法。详细内容请参考下文。

Linux环境中的awk命令使用技巧(linux awk命令使用实例)

一、Linux系统

1.登录Linux系统

2.查看AWK帮助文件信息

二、AWK基础应用

1.awk命令语法结构

语法结构:

awk [options] 'BEGIN{ print "start" } ‘pattern{ commands }’ END{ print "end" }' file

备注:BEGIN END是AWK的关键字部,因此必须大写;这两个部分开始块和结束块是可选的。

2.awk命令工作原理

说明:AWK它工作通过三个步骤

(1)读:从文件、管道或标准输入中读入一行然后把它存放到内存中

(2)执行:对每一行数据,根据AWK命令按顺序执行。默认情况是处理每一行数据,也可以指定模式。

(3)重复:一直重复上述两个过程直到文件结束。

3. awk命令操作实例

(1) 分隔符的使用

说明:通常来说,awk常用的命令选项有一下三个。

-F fs指定分隔符;

-v 赋值一个用户自定义变量;

-f 指定脚本文件,从脚本中读取awk命令。

其中,awk命令涉及到的分隔符使用如下:

用法:-Ffs 其中fs是指定输入分隔符,fs可以是字符串或正则表达式;分隔符默认是空格。

常见写法:

-F: 使用:作为分隔符

-F, 使用,作为分隔符

-F[Aa] 使用【Aa】作为分隔符

实例一、执行指令# awk -F":" '{print $1}' /etc/passwd使用“:”作为分隔符查出系统的用户名

实例二、执行指令# ifconfig ens192|grep netmask|awk '{print $2}' 查出本系统的IP地址。

(2) 关系运算符的使用

实例一、执行指令# awk -F":" '$3<10{print $1 $NF}' /etc/passwd打印出passwd文件中用户UID小于10的用户名和它登录使用的shell。

实例二、执行指令# awk -F":" '{$3>=1000 && $NF=="/bin/bash"}{print $1"\t" $NF}' /etc/passwd打印出系统中UID大于1000且登录shell是/bin/bash的用户。

三、AWK高级应用

1.awk命令语法结构

Awk命令内置变量的特殊用法:

$0 表示整个当前行

NF 字段数量 NF(Number 数量 ; field 字段)

NR 每行的记录号,多文件记录递增 Record ['rek:d]

\t 制表符

\n 换行符

~ 匹配

!~ 不匹配

-F'[:#/]+' 定义三个分隔符

2.Awk命令高级应用实例

实例一、执行指令# awk -F":" '/^root/{print $0}' /etc/passwd打印以root开头的行。

实例二、执行指令# awk -F":" '(NR>=3&&NR<=6){print NR,$0}' /etc/passwd打印行号大于等于3且行号小于等于6的行。

实例三、执行指令# awk -F: '{$3<10?USER="A":USER="B";print $1,USER}' /etc/passwd打印passwd中UID小于10,则给变量USER赋值成A,否则赋值成B。

实例四、执行指令# awk -F: '(NR<=5 && $NF~"bin/bash"){print $0}' /etc/passwd打印查出行号小于等于5且包括bin/bash的行。

实例五、执行指令# awk -F: '(NR<=5 && $NF!~"bin/bash"){print $0}' /etc/passwd打印查出行号小于等于5,且不包括bin/bash的行。

备注:上述实例中的~ 代表匹配;!~ 代表不匹配。

Tags:

最近发表
标签列表