1. FS(Field Separator):设置输入字段分割符, 默认为空白字符
2. OFS(Out of Field Separator):设置输出字段分隔符, 默认为空白字符
3. RS(Record Separator):设置输入记录分割符(即行分割符),默认是换行符(\n)
4. ORS(Output Record Separate):设置输出记录分割符, 默认是换行符
5. NF(Number of Field):当前行的字段的个数,即当前行被分割成了几列
6. NR(Number of Record):当前正在处理的行号,同时输入多个文件时,跨文件时此变量不会重置,也是表示AWK已经遍历的行数
7. FNR:单文件计数的行号,只输入一个文件时NR与FNR相等
8. FILENAME: 当前输入文件的名字
1. 使用FS 和 OFS分割行再拼接输出
[root@rabbit-api-001 test]
total 48
-rw-r--r-- 1 root root 32 Apr 27 08:12 a.txt
-rw-r--r-- 1 root root 48 Apr 27 08:15 b.txt
-rw-r--r-- 1 root root 208 Apr 26 14:59 casedemo.sh
-rw-r--r-- 1 root root 288 Apr 26 15:36 func.sh
-rw-r--r-- 1 root root 108 Apr 26 14:48 loop.sh
-rw-r--r-- 1 root root 100 Apr 26 15:19 recase.sh
-rw-r--r-- 1 root root 14531 Apr 27 12:20 resource.txt
-rw-r--r-- 1 root root 119 Apr 27 13:37 test.txt
-rw-r--r-- 1 root root 218 Apr 26 16:06 user.txt
[root@rabbit-api-001 test]
total 48***
-rw-r--r-- 1 root root 32 *** 27 08:12 a.txt
-rw-r--r-- 1 root root 48 *** 27 08:15 b.txt
-rw-r--r-- 1 root root 208 *** 26 14:59 casedemo.sh
-rw-r--r-- 1 root root 288 *** 26 15:36 func.sh
-rw-r--r-- 1 root root 108 *** 26 14:48 loop.sh
-rw-r--r-- 1 root root 100 *** 26 15:19 recase.sh
-rw-r--r-- 1 root root 14531 *** 27 12:20 resource.txt
-rw-r--r-- 1 root root 119 *** 27 13:37 test.txt
-rw-r--r-- 1 root root 218 *** 26 16:06 user.txt
2. 设置输入行分割符RS和输出行分割符ORS
[root@rabbit-api-001 test]
total 52
-rw-r--r-- 1 root root 32 Apr 27 08:12 a.txt
-rw-r--r-- 1 root root 48 Apr 27 08:15 b.txt
-rw-r--r-- 1 root root 208 Apr 26 14:59 casedemo.sh
-rw-r--r-- 1 root root 288 Apr 26 15:36 func.sh
-rw-r--r-- 1 root root 519 Apr 27 15:00 line.txt
-rw-r--r-- 1 root root 108 Apr 26 14:48 loop.sh
-rw-r--r-- 1 root root 100 Apr 26 15:19 recase.sh
-rw-r--r-- 1 root root 14531 Apr 27 12:20 resource.txt
-rw-r--r-- 1 root root 119 Apr 27 13:37 test.txt
-rw-r--r-- 1 root root 218 Apr 26 16:06 user.txt
[root@rabbit-api-001 test]
total 52
-rw-r--r-- 1
32 Apr 27 08:12 a.txt
-rw-r--r-- 1
48 Apr 27 08:15 b.txt
-rw-r--r-- 1
208 Apr 26 14:59 casedemo.sh
-rw-r--r-- 1
288 Apr 26 15:36 func.sh
-rw-r--r-- 1
519 Apr 27 15:00 line.txt
-rw-r--r-- 1
108 Apr 26 14:48 loop.sh
-rw-r--r-- 1
100 Apr 26 15:19 recase.sh
-rw-r--r-- 1
14531 Apr 27 12:20 resource.txt
-rw-r--r-- 1
119 Apr 27 13:37 test.txt
-rw-r--r-- 1
218 Apr 26 16:06 user.txt
[root@rabbit-api-001 test]
total 56
-rw-r--r-- 1 mysql mysql 32 Apr 27 08:12 a.txt
-rw-r--r-- 1 mysql mysql 48 Apr 27 08:15 b.txt
-rw-r--r-- 1 mysql mysql 208 Apr 26 14:59 casedemo.sh
-rw-r--r-- 1 mysql mysql 288 Apr 26 15:36 func.sh
-rw-r--r-- 1 mysql mysql 519 Apr 27 15:00 line.txt
-rw-r--r-- 1 mysql mysql 108 Apr 26 14:48 loop.sh
-rw-r--r-- 1 mysql mysql 606 Apr 27 15:18 newline.txt
-rw-r--r-- 1 mysql mysql 100 Apr 26 15:19 recase.sh
-rw-r--r-- 1 mysql mysql 14531 Apr 27 12:20 resource.txt
-rw-r--r-- 1 mysql mysql 119 Apr 27 13:37 test.txt
-rw-r--r-- 1 mysql mysql 218 Apr 26 16:06 user.txt
mysql mysql
[root@rabbit-api-001 test]
total 536
-rw-r--r-- 1 root root 52 Apr 28 07:58 a.txt
-rw-r--r-- 1 root root 347 Apr 30 13:27 b.txt
drwxr-xr-x 10 root root 328 Apr 29 10:28 djmockserver
-rw-r--r-- 1 root root 529365 Apr 28 21:25 djmockserver.zip
-rw-r--r-- 1 root root 241 Apr 28 07:57 select.sh
-rw-r--r-- 1 root root 42 Apr 28 20:34 test.txt
[root@rabbit-api-001 test]
total 536
-rw-r--r-- 1 mysql mysql 52 Apr 28 07:58 a.txt
-rw-r--r-- 1 mysql mysql 347 Apr 30 13:27 b.txt
drwxr-xr-x 10 mysql mysql 328 Apr 29 10:28 djmockserver
-rw-r--r-- 1 mysql mysql 529365 Apr 28 21:25 djmockserver.zip
-rw-r--r-- 1 mysql mysql 241 Apr 28 07:57 select.sh
-rw-r--r-- 1 mysql mysql 42 Apr 28 20:34 test.txt
3. NF获取当前列数,即一行被分割的份数
[root@rabbit-api-001 test]
total 536
-rw-r--r-- 1 root root 52 Apr 28 07:58 a.txt
-rw-r--r-- 1 root root 347 Apr 30 13:27 b.txt
drwxr-xr-x 10 root root 328 Apr 29 10:28 djmockserver
-rw-r--r-- 1 root root 529365 Apr 28 21:25 djmockserver.zip
-rw-r--r-- 1 root root 241 Apr 28 07:57 select.sh
-rw-r--r-- 1 root root 42 Apr 28 20:34 test.txt
[root@rabbit-api-001 test]
line1 2
line2 9
line3 9
line4 9
line5 9
line6 9
line7 9
4. 全部文件已处理过的行数NR和当前文件 中已处理过的行数FNR
[root@rabbit-api-001 test]
1 a1
2 a2
3 a3
4 a4
[root@rabbit-api-001 test]
1 b1
2 b2
3 b3
4 b4
[root@rabbit-api-001 test]
NR:1 FNR:1 a1
NR:2 FNR:2 a2
NR:3 FNR:3 a3
NR:4 FNR:4 a4
NR:5 FNR:1 b1
NR:6 FNR:2 b2
NR:7 FNR:3 b3
NR:8 FNR:4 b4
5.当前行所属文件的文件名
[root@rabbit-api-001 test]
FINAME:a.txt a1
FINAME:a.txt a2
FINAME:a.txt a3
FINAME:a.txt a4
FINAME:b.txt b1
FINAME:b.txt b2
FINAME:b.txt b3
FINAME:b.txt b4