tr '\n' ',' | sed 's/,$/\n/'
tr заменяет каждый символ новой строки на ,, включая самый последний (после 07/21/2018). Тогда sed заменяет , В конце с новой строкой, чтобы сформировать POSIX-совместимую строку без трейлинга ,.
обратите внимание sed инструмент обработки текста, который по умолчанию работает с одной линией одновременно. Что бы ни оставалось tr - это одна строка; она может быть очень длинной, в зависимости от вашего ввода, и sed не может быть лучшим инструментом для обработки она.
я бы пересмотрел идею наличия всех результатов в одной строке, чтобы избежать такого сценария. Есть способы заменить именно этот sed С инструментом, работающим с байтами (не строками). Но даже если вы сделаете это здесь, у вас все равно будет потенциально очень длинная строка, которую неудобно анализировать позже.
OK, если вам действительно нужно это сделать, используйте следующую команду для создания произвольно большой строки. Все парсинг сделано с инструментами работая дальше байты:
head -c -1 | tr '\n' ',' && printf '\n'
head удаляет последний символ, мы слепо предполагаем, что это новая строка;tr изменения всех остальных строк в , символы; printf добавляет завершающую новую строку, чтобы сделать ваш результат POSIX-совместимой линией.