|
$0 表示正在处理下的当前行内容。
比如有以下文本内容:# cat temp.txt
abc www 3201 3/13/11 30138
def gro 3033 2/32/13 02901
xyz dai 3010 8/81/11 10391
opq lio 8901 7/18/38 31899 运行下面命令:awk '{print $0}' temp.txt
abc www 3201 3/13/11 30138
def gro 3033 2/32/13 02901
xyz dai 3010 8/81/11 10391
opq lio 8901 7/18/38 31899 awk 依次处理每行内容,因此输出了整个记录。
再看下面的一个实例:# awk '{ buf[NR % 2] = $0; } END { for (i=1; i<3; i++) {print buf[i%2] }}' temp.txt
xyz dai 3010 8/81/11 10391
opq lio 8901 7/18/38 31899 上面实际模拟了 tail 命令,打印了倒数的 2 行内容。
变量 NR 是 awk 内置变量,它记录了每条记录的记录号,记录号如同行号(一般情况下可以这么说,但是当一条记录由好几行组合在一起时这种说法就不正确了)。awk 每处理完一条记录后,NR 值会加 1 。仍然对上面的文本进行测试:awk '{print NR, $0}' temp.txt
1 abc www 3201 3/13/11 30138
2 def gro 3033 2/32/13 02901
3 xyz dai 3010 8/81/11 10391
4 opq lio 8901 7/18/38 31899 由上可见,每行的前面都添加了一个行号。 |
|