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