2016-01-25 98 views
0

我正在嘗試製表符分隔冒號分隔的文件。它的工作原理就像我不添加標題。爲什麼awk沒有像預期的那樣工作

這工作:

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

這只是打亂掉在輸出的第一個記錄:

[[email protected] ~]# 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 

回答

3

你不再在BEGIN塊設置FSOFS,所以設置纔會生效在處理第一條輸入線之後。將它移回BEGIN區塊。

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

是的,你修正了:-) – friendyogi

相關問題