我正在尝试用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
答案 0 :(得分:3)
您不再在FS
块中设置OFS
和BEGIN
,因此该设置仅在处理完第一个输入行后生效。将其移回BEGIN
块。
awk 'BEGIN {print "Username\tUID\tGID"; FS=":";OFS="\t"}
{print $1,$3,$4}' /etc/passwd | head -n 3