Linux三剑客awk之行和列

一、介绍

AWK 是一种处理文本文件的语言,是一个强大的文本分析工具,也是一门语言,有自己的数据结构,可以进行过滤、统计、计算、取行取列等操作

之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符

wak -F, 'BEGIN{print "name"}{print $2}END{print "end of file"}' oldboy.txt
wak -F, 'BEGIN{print "name"}NR==2{print $2}END{print "end of file"}' oldboy.txt  # 条件为,行==2

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

二、awk行与列

awk中名词说明
记录,record每行默认以回车分割
字段,域,field每列默认通过空格分割,-F可以指定分隔符
内置变量说明
NRNumber of Record,记录号,行号
NFNumber of Field,域号,列号
FSField Separator,每个字段的分隔符,-vFS可修改分隔符
OFSOut Field Separator,每个字段的输出分隔符,默认是空格,-vOFS可修改输出分隔符

三、awk取行

awk取行
NR==1取第一行
NR>=1 && NR <=5取第1~5行
/101/,/105/从含有字符串101的行到含有字符串105的行

在这里插入图片描述

四、awk取列

  • -F:指定分隔符,默认是空格/连续空格/tab
  • $3:取出第3行,列数从1开始,不从0开始
  • $0:表示一整行
  • $NF:表示最后一列
  • $(NF-1):表示倒数第二列
awk '{print $1}'
awk '{print $1,$9}'

在这里插入图片描述
在这里插入图片描述

  • 取出整行
awk 'NR==4{print $0}'

在这里插入图片描述

  • 取出/etc/passwd的第一列和最后一列
awk -F: '{print $1,$NF}' /etc/passwd

在这里插入图片描述

  • 使用awk交换/etc/passwd第一列和最后一列的内容

在这里插入图片描述

awk -F: '{print $NF,$2,$3,$4,$5,$6,$1}' /etc/passwd
awk -F: '{print $NF":"$2":"$3":"$4":"$5":"$6":"$1}' /etc/passwd
awk -vFS=: -vOFS=: '{print $NF,$2,$3,$4,$5,$6,$1}' /etc/passwd
  • 取出ip地址
ip a s ens33 | awk -F"[ /]+" 'NR==4{print $3}'
ip a s ens33 | awk -vFS="[ /]+" 'NR==4{print $3}'

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bugcoder-9905

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值