Dieser Code funktioniert wie erwartet.awk else if - Best Practice
grep myhost hosts.csv |
awk -F, '{if ($8 != "") print $8; else if ($7 != "") print $7; else if ($7 == "" && $8 == "") print $0}'
Ich weiß, es gibt Hunderte von Möglichkeiten, eine Katze zu häuten. Aber ich habe mich nur gefragt, ob dies der beste und effektivste Weg ist, dies zu tun.
codereview.stackexchange.com ist besser geeignet für diese Art von Frage. – chepner
Die Klausel 'else if ($ 7 == "" && $ 8 == "") "sollte einfach als' else 'geschrieben werden; Sie kommen nicht darauf, wenn '$ 8! =" "' oder wenn '$ 7! =" "'. Der '$ 8! =" "' - Test berücksichtigt zwei der vier Fälle, die sich aus den Tests ergeben (es spielt keine Rolle, ob "$ 7" leer ist oder nicht; "$ 8" wird gedruckt, unabhängig davon, ob es nicht leer ist). –