文本三剑客之awk

1、简介

awk的作用是逐行读取输入文本,按照命令找指定的行,找到的行打印操作。默认以空格为分隔符,多个空格会自动压缩成一个。awk默认就是打印。

-F:指定分隔符,直接跟,不用引用

-v:变量复制

用逗号指定连续的行,用||指定不连续的行,&&表示且。

2、内置变量

不能用引号引用起来

$0 打印全部
$n 当前处理行的第n列
NR 当前处理的行号
NF 当前处理的行的字段个数,$NF代表最后一个字段
FS 列分割符。指定每行文本的字段分隔符,输入内容的分隔符

3、打印

打印所有        awk '{print $0}' 123.txt

文本三剑客之awk_第1张图片

打印指定的列         awk '{print $3}' 123.txt

文本三剑客之awk_第2张图片

指定分隔符打印        awk -F: '{print $1,$3}' /etc/passwd

文本三剑客之awk_第3张图片

4、打印行号

awk '{print NR}' /etc/passwd

文本三剑客之awk_第4张图片

打印行号和内容        awk '{print NR}' /etc/passwd

文本三剑客之awk_第5张图片

5、指定行号输出

awk 'NR==3{print}' /etc/passwd

打印3到5行

awk 'NR==3,NR==5{print}' /etc/passwd

文本三剑客之awk_第6张图片

打印3和5行

awk 'NR==3;NR==5{print}' /etc/passwd

6,奇偶打印

偶:awk 'NR%2==0{print NR $0}' /etc/passwd

文本三剑客之awk_第7张图片

奇:awk 'NR%2==1{print NR $0}' /etc/passwd

文本三剑客之awk_第8张图片

7、运算

取幂

文本三剑客之awk_第9张图片

8、getline

awk的内置函数,两边没有重定向符号和管道符就是打印奇偶行

你可能感兴趣的:(数学建模,bash,linux,运维,服务器)