2015-03-31 3 views
1

Пожалуйста, предложите -AWK заявление, чтобы получить выход в одну линию

Input File -

G238740 
G316342 
G748951 
G952443 
G955221 
G952842 
G767727 
G339717 
G712953 

Command я пытался:

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

+0

Зачем вам нужен «-F»; »? Во входном файле нет точек с запятой. – Barmar

+0

или 'awk '{printf" displayName == \ "% s \" || ", $ 1}' file' –

ответ

2

Использование printf вместо print, так что это не добавит новую строку. А затем условно распечатать || разделитель на всех линиях, кроме первого:

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

Привет, Barmar, Спасибо за прекрасный ответ. Большое спасибо. – Naveen

+0

Спасибо, Джон, я принял и проголосовал. – Naveen

Смежные вопросы