Один из способов сделать это — подсчитать количество строк в начале вашего скрипта. При выводе выводите запятую в конце только в том случае, если ваш номер строки не совпадает с количеством строк. Как это сделать, объясняется здесь .
Другой подход заключается в том, чтобы не печатать запятую при выводе первой записи и печатать одну перед последующими записями. Это можно сделать следующим образом:
awk -F, '{if (!i)printf "\""$0"\"";else printf ",\n\""$0"\"";i=1}END{print ""}' a.in
Это определенно намного чище.
Есть и третий путь. Код
if(getline == 0)
читает следующую строку и, следовательно, сообщает вам, находитесь ли вы в конце файла. Это даже чище, чем описанный выше метод, но влечет за собой накладные расходы из-за двойного чтения файла, поэтому я не использую его, если только второй метод не дает сбой (, например, мне нужно обработать следующий -- -последняя строка тоже по-другому ).