Учитывая ваш пример, который выглядит так, как будто это может быть одна из многих записей какого-либо журнала, каждая запись журнала начинается с 2015-
... вы можете попробовать этот быстрый метод:
tr -d '\n' < input.csv | sed 's/2015-/\n2015-/g' > output.csv
input.csv
содержит строки, похожие на ваш пример, где то, что вы хотите, всегда должно начинаться с 2015-
... tr -d '\ n'
удаляет новые строки. Поэтому мы временно удаляем все новые строки передает содержимое input.csv
на стандартный ввод, чтобы программа tr
его прочитала
sed
для поиска 2015-
и заменяем его новой строкой, предшествующей 2015-
, чтобы вернуть те строки, которые нам нужны. В противном случае ваш ввод выглядит как из журнала, и обычно в журнале есть несколько записей / записей, просто tr -d '\ n'
сделает одну огромную непрерывную строку со всеми разными записями с отметками времени, объединенными вместе , и не позволит вам различать отдельные записи с отметкой времени.Таким образом, мы используем этот sed
, чтобы гарантировать, что окончательный вывод содержит одну запись на строку, путем поиска распознаваемого разделителя записей, такого как 2015-
, и префикса с новой строки > output.csv
сохраняет результаты в output.csv
2015-
например, мы приближаемся к концу года, скоро он будет be 2016-
, так что в следующем году вам нужно будет пересмотреть до 2016 года. Или:
tr -d '\n' < input.csv | sed 's/\([[:digit:]]\{4\}\)-/\n\1-/g' > output.csv
sed
использует базовые регулярные выражения искать "год-" по четырем цифрам, за которыми следует тире Как указал phg, это не проблема SSH... Мне просто нужно включить локальную синхронизацию монтажного стола, например