awk命令 使用方法汇总

本文介绍了awk命令的基本用法,包括按指定分隔符打印字段,使用变量如NF和NR,以及内置函数如toupper()和length()。此外,还讲解了基于条件的行处理,如查找特定模式的行和处理奇偶行。awk的灵活性在文本分析和数据处理中显得尤为强大。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

awk   动作            文件名
awk  '{print $0}'  network
  这里$0表示当前行所以得出的结果和cat network 是一样的,另外$1,$2,$N表示第一个字段,第二字段,第N个字段,
所以如果使用$1 的话就会打印每行的第一个字段(默认是按空格截取的字段)

awk  -F  ':'  '{print $1}'  passwd
-F 按照冒号来切割每一行,打印第一个字段

 

1,使用变量

变量:
NF :切割出的最后一个字段
NR:表示当前处理的是第几行


awk -F ':' '{print $1 ,$NF}' passwd
更进一步,$0 表示当前行,而$1表示按指定方法切割出的第一个字段,$NF 表示切割出的最后一个字段。$(NF-1) 表示倒数第二个字段,依次类推。
另外","会显示成 空格,如果不加","会导致两个字段紧连。

awk -F ':' '{print"(" NR")" ,$1}' passwd

NR 表示当前的行号,是一个变量 如果想打印出正常的字段,不要用"NR" 因为这是把NR作为一个字符串(shell 的用法)

 

2,使用内置函数处理数据

内置函数:
toupper(): 字符转为大写  
tolower():字符转为小写
length():返回字符串长度
substr();返回子字符串      //
sin();正弦                        //
cos();余弦                   //
sqrt();平方根          //
rand():随机数         //解决

 

3,使用条件
awk  '条件  动作' 文件名

awk -F ':' '/daemon/ {print $1}' passwd
查找包含 "daemon" 字符的行并将它的第一个字段打印出来。

 

awk -F ':' 'NR%2 == 1 {print $1}' passwd //打印奇数行 的第一个切割字段
awk -F ':' 'NR >2 {print $1}' passwd  //打印从第三行开始的第一个切割字段。

 

4,if 条件语句(不同于3)

写判定条件时与3不同,写在{} 内,if 和else之间才加;print字符串要加""
如果是多条语句该怎么办(else 后面知道了,前面怎么办?)

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值