为什么没有像预期的那样工作

时间:2016-01-25 10:44:43

标签: linux unix awk

我正在尝试用tab分隔冒号分隔的文件。它的工作原理我没有添加标题。

这有效:

[root@cloudops11l ~]# awk 'BEGIN {FS=":";OFS="\t"} {print $1,$3,$4}' /etc/passwd | head -3
root    0       0
bin     1       1
daemon  2       2

这只是输出中的第一条记录:

[root@cloudops11l ~]# awk 'BEGIN {print "Username\tUID\tGID"} {FS=":";OFS="\t"} {print $1,$3,$4}' /etc/passwd | head -3
Username        UID     GID
root:x:0:0:root:/root:/bin/bash
bin     1       1

1 个答案:

答案 0 :(得分:3)

您不再在FS块中设置OFSBEGIN,因此该设置仅在处理完第一个输入行后生效。将其移回BEGIN块。

awk 'BEGIN {print "Username\tUID\tGID"; FS=":";OFS="\t"}
    {print $1,$3,$4}' /etc/passwd | head -n 3