2015-03-31 32 views
1

請建議 -AWK語句獲取輸出一行

輸入文件 -

G238740 
G316342 
G748951 
G952443 
G955221 
G952842 
G767727 
G339717 
G712953 

命令我想:

awk -F";" '{ print "displayName == \""$1"\" " "||" }' input 

電流輸出 -

displayName == "G238740" || 
displayName == "G316342" || 
displayName == "G748951" || 
displayName == "G952443" || 
displayName == "G955221" || 
displayName == "G952842" || 
displayName == "G767727" || 
displayName == "G339717" || 
displayName == "G712953" || 

期望輸出,如何獲得輸出一個單行

displayName == "G238740" || displayName == "G316342" || displayName == "G748951" 
+0

更改'ORS'變量獲得比換行符不同的輸出分離。 – Barmar 2015-03-31 06:27:22

+0

爲什麼你需要'-F「;」'?輸入文件中沒有分號。 – Barmar 2015-03-31 06:28:03

+0

或'awk'{printf「displayName == \」%s \「||」,$ 1}'文件' – 2015-03-31 06:31:37

回答

2

使用printf,而不是print,所以它不會添加一個新行。然後有條件打印||分離器上的所有行,但第一:

awk '{printf("%sdisplayName == \"%s\"", (NR == 1 ? "" : " || "), $1)} 
    END {print ""}' input 
+0

嗨Barmar,謝謝你的完美回覆。非常感謝。 – Naveen 2015-03-31 06:37:15

+0

謝謝約翰,我接受並投票表決。 – Naveen 2015-03-31 09:25:12