我有一個使用AWK腳本的任務,我很難理解爲什麼我會遇到這個問題。基本上我只想在腳本結尾處輸出一行簡單的輸出,但由於某種原因,它不起作用。Awk腳本;打印不輸出我想要的地方
print "Listed are their names (sorted by last names) and phone numbers:"
for(i = 1; i < x; i++)\
{print " "topNames[i]"--"topPhones[i] | "sort -k 2";}
print " Thanks to all of you for your continued support!!"
的輸出:
Listed are their names (sorted by last names) and phone numbers:
Thanks to all of you for your continued support!!
John Goldenrod--(916) 348-4278
Mike Harrington--(510) 548-1278
Archie McNichol--(206) 548-1348
Guy Quigley--(916) 343-6410
Dan Savage--(406) 298-7744
Tom Savage--(408) 926-3456
Elizabeth Stachelin--(916) 440-1763
,而我想它是:
Listed are their names (sorted by last names) and phone numbers:
John Goldenrod--(916) 348-4278
Mike Harrington--(510) 548-1278
Archie McNichol--(206) 548-1348
Guy Quigley--(916) 343-6410
Dan Savage--(406) 298-7744
Tom Savage--(408) 926-3456
Elizabeth Stachelin--(916) 440-1763
Thanks to all of you for your continued support!!
我真的很困惑,爲什麼它不是在命令輸出我想它。
另請注意。 AWK腳本編程有什麼好的編程風格(註釋等)?我習慣於使用C++,所以我不確定在哪裏放置縮進以及如何對齊我的註釋。
任何幫助將不勝感激。
謝謝!這工作。有沒有什麼辦法可以做到這一點,而不創建sortcmd,只使用常規排序? – JSarwer
你可以打印... | 「sort -k 2」'然後'close(「sort -k 2」)'。使用變量只是爲了避免命令名稱不匹配造成的錯誤(手冊中明確指出它們必須完全匹配) –
注意:如果Tom的區域代碼小於Dan的區號,「Dan Savage」會排在「Tom Savage」之後。嘗試'printf「%s - %s \ n」,姓名,電話| 「sort -k 2,2 -k 1,1」' –