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-совместимой линией.