awk命令

awk命令

awk命令是一个功能强大的编辑工具,逐行读取输入文本

默认以空格或者tab键作为分隔符,多个空格会自动压缩成一个空格(连续的多个重复内容)

① 根据命令条件寻找指定行内容

② 打印再进行操作过滤出来的行内容

awk默认操作功能就是打印(免交互操作)

awk打印功能

命令:awk  ‘[操作符]  [选项]'  [参数]

BEGIN { action } 模块,读取操作,读文件的所有行,所有读取完毕后一次性执行

END { action } 模块,打印,输出结果,对前面的结果条件判断,还可以用作代码操作

pattern 语句块中的通用命令是重要部分,如果没指定,默认执行{ print }

awk对行内容进行处理,再进行取列进行打印过滤(切片)

“ -F ”  #指定分隔符,默认分隔符是若干个连续空白符

“ -v ”  # var = value 变量赋值

“ { } ” 内指定操作,“ { } ” 外指定条件

用逗号指定连续的行,用 “ | | ” 指定不连续的行,&&表示逻辑且

例如( awk  { print  $1,$2,$3 } )

内置变量
“ $0 ”   #当前处理行的整行内容(打印所有)

“ $[数字] ”   #当前处理行的指定字段

“ NR ”   #当前处理的指定行进行操作(NR>1  NR=1)

“ NF ”   #当前处理行的字段个数,$NF相当于最后一个字段

“ OFS ”   #输出内容的列分隔符

" FILENAME "    #被处理的文件名

“ RS ”   #行分隔符(指定分隔符自动换行)

用awk命令进行打印,默认打印方式

命令:awk  ‘{ print }’

打印指定文件的第四列内容

命令:awk  ‘ { print  $4 } ’

打印指定文件的指定行数内容

命令:awk  ‘ NR==[行数] { print } ’   [文件名]

打印指定文件的范围性多个行内容(范围性)

命令:awk  ‘ NR==[行数],NR==[行数] { print } ’   [文件名]

打印指定文件的指定多个行内容

命令:awk  ‘ NR==[行数];NR==[行数] { print } ’   [文件名]

打印偶数行

命令:awk  ‘ NR%2=0 { print } ’  [文件名]

打印奇数行

命令:awk  ‘ NR%2=1 { print } ’  [文件名]

运算功能

“ + ”   加法

“ - ”   减法

“ * ”   乘法

“ / ”  除法

“ ^ ”  次方

命令:awk  ‘ BEGIN { print  [运算公式] } ’

四、getline工作流程

getline函数

① getline是awk的一个内置函数

② 没有重定向和管道符时,就是打印奇偶数行

③ 重定向就是从指定文件获取内容,变量赋值

awk首先读取第一行,而getline跳转至光标下一行获取(无管道符和重定向的情况下)

打印偶数行

命令:awk  ‘ { getline;print  $0 } ’   [文件名]

打印偶数行

命令:awk  ‘ { print  $0;getline } ’   [文件名]

如果有重定向和管道符的情况下,则getline的作用是定向输入文件

将指定文件①输出给指定文件②

命令:awk  ‘ { getline < "[文件①]";print  $0 > "[文件②]";}’   [文件①]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值