У меня огромный файл csv, около 500 Мб. Сепаратором поля является char char (|). Некоторые строки содержат символы новой строки и возврат каретки. Мне нужно удалить их, но я не хочу удалять законные строки перевода в конце каждой строки. Я попытался с sed и tr, как показано в других вопросах, но в итоге я удаляю все новые строки, чего я не хочу.В bash замените новую строку в файлах csv, за исключением случаев, когда на конец строки
Ввод пробы (|| Да линия должна быть присоединена к предыдущей строке):
21/06/2016 18:06:32|||||||||||||||||||32 Red|Jrup Vej 6|61069849
||Yes||vals
21/06/2016 18:06:32|||||||||||||||||||101 K|Ser Bevard 110|||No|
Мои попытки:
sed -i 's/\r\n//g' myfile.csv
tr -d '\r' < myfile.csv
Спасибо за любую помощь, Джо
Вы забыли предоставить образец ввода, ожидаемый результат и свои собственные усилия. – anubhava
И как бы вы узнали, какой конец строки был «законным» или нет? Окончание строки - это конец строки. Если не существует какого-либо конкретного контекста, окружающего законные или незаконные окончания строки, невозможно сказать, какое окончание строки может быть законным или нет. –
Очень сложно. Я бы сказал, что если новая строка превзойдена, и после нее следует какой-то текст и трубка, это новая строка, от которой мне нужно избавиться. – user1030520