[toc]
awk内置变量
$0
表示匹配的整行
文件 passwd.txt
内容如下
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
使用 $0
打印整行
$ awk '{print $0}' passwd.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
NR
总的行号
文件 a.txt
内容如下
101,abc,CEO
102,def,CTO
103,qaz,COO
文件 b.txt
内容如下
666,ABC,CEO
777,DEF,CTO
888,QAZ,COO
NR
会统计多个文件的总行号
$ awk '{print NR,$0}' a.txt b.txt
1 101,abc,CEO
2 102,def,CTO
3 103,qaz,COO
4 666,ABC,CEO
5 777,DEF,CTO
6 888,QAZ,COO
FNR
当前文件的行号
FNR
只统计每个文件的行号
$ awk '{print FNR,$0}' a.txt b.txt
1 101,abc,CEO
2 102,def,CTO
3 103,qaz,COO
1 666,ABC,CEO
2 777,DEF,CTO
3 888,QAZ,COO
NF
文件最后一列
$ awk -F: '{print $NF}' /etc/passwd | head
/bin/bash
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/bin/sync
/sbin/shutdown
/sbin/halt
/usr/sbin/nologin
/usr/sbin/nologin
分隔符
-
record
字段 -
separator
分隔符
变量名 | 对应单词 | 含义 |
---|---|---|
FS | field separator | 字段分隔符,默认空格或 tab |
OFS | output field separator | 输出分隔符,默认空格 |
RS | record separator | 记录分隔符,默认换行符 \n |
ORS | output record separator | 输出记录分隔符 |