awk文本三剑客之一,是功能最强大的文本工具
awk也是按行来进行操作,对行操作完之后,可以根据指定命令来对行取列
awk的分隔符:默认分隔符是空格或者tab键,多个空格,会自动压缩成一个
用法:
awk 选项'模式或者条件{操作}'文件 -F:指定分隔符,如果是空格,不需要加F -v:变量赋值 操作:默认就是打印
$0打印全部
awk常用的内置变量:
$0:打印全部内容 $n:处理行的第几列 NR:处理的行的行号 NF:处理当前行的字段个数,$NF就表示最后一个字段 FS:列分隔符,指定文本的分隔符,和F作用一致,-F:FS=“:” OFS:输出文本的分隔符 RS:指定分隔符为回车 内置变量$n要加$,其他的内置变量不能加$,更不能用引号,也不能用括号,否则会被当成字符串来处理
即打印行号也打印内容
指定第三行输出
二到四行输出
二和四行输出
奇数
偶数
awk运算: awk 'BEGIN{print10+20}'
awk的内置函数:getline
1、如果getiline左右没有重定向符号(<,>)或者没有(|)管道符时,awk会先读第一行,但是如果加了getline跳过第一行读取第二行
2、如果两边有重定向或者管道符,getiline作用于定向输入文件
BEGIN模式
awk'BEGIN{..};{..}END{..}'文件 在对文件进行操作之前,会先执行BEGIN{..}模式条件,或者是命令操作中间的{..}是真正的用于处理文件的命令 END{..}结束语句就是打印执行结果
-v变量赋值 改变分隔符
awk条件判断打印
awk支持条件判断语句if
三元表达式:类似java awk'(条件表达式)?(A表达式或表达值):(B的表达式或者值)'
?if
:else
awk的精确筛选:
$3>$4
<>=
$NF就表示最后一个字段
awk和tr改变分隔符
awk结合数组来进行使用 在awk中,怎么来定义数组