Гость
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Замена конца строки на запятку + вставка символов / 15 сообщений из 15, страница 1 из 1
15.11.2017, 13:31
    #39553453
Sintetik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена конца строки на запятку + вставка символов
Подскажите как в Linux максимально быстро сделать в текстовом файле
1. замену \n на ',' концов строки может быть несколько \n\n\n а запятая нужна одна, в самом конце запятая не нужна
2. в начале файла воткнуть 1 символ
3. в конец файла воткнуть 1 символ

в итоге
111111
222222
333333

нужно переделать в [11111,22222,33333]

используем только утилиты из стандартной поставки, perl тоже сгодится
максимально быстро потому что файлы десятки гигабайт, строчки в них десятки мегабайт
...
Рейтинг: 0 / 0
15.11.2017, 13:46
    #39553481
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена конца строки на запятку + вставка символов
Sintetik, кастомное решение на C будет по определению быстрее.
...
Рейтинг: 0 / 0
15.11.2017, 13:51
    #39553488
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена конца строки на запятку + вставка символов
sed
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.11.2017, 13:58
    #39553495
Sintetik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена конца строки на запятку + вставка символов
Scott TigerSintetik, кастомное решение на C будет по определению быстрее.
возможно, но делать некому, поэтому нужно обойтись стандартными утилитами
...
Рейтинг: 0 / 0
15.11.2017, 14:08
    #39553523
Sintetik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена конца строки на запятку + вставка символов
Dimitry Sibiryakovsed


я знаю что им можно, какое выражение?
нашел sed 's/^,+//;s/,+$//;s/,,+/,/g' но не работатет
...
Рейтинг: 0 / 0
15.11.2017, 15:02
    #39553593
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена конца строки на запятку + вставка символов
Sintetikя знаю что им можно, какое выражение?

Я был неправ, он же строчный, им не получится.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.11.2017, 15:16
    #39553613
user89
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена конца строки на запятку + вставка символов
Sintetik,

примерчики (и с perl тоже) http://linux-notes.org/poisk-i-zamena-slov-v-fajlah-linux/
...
Рейтинг: 0 / 0
15.11.2017, 16:21
    #39553676
Андрей Панфилов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена конца строки на запятку + вставка символов
Dimitry SibiryakovЯ был неправ, он же строчный, им не получится.

ну конечно...

sed -r ':a;N;$!ba;s/\n+/,/g'
...
Рейтинг: 0 / 0
15.11.2017, 16:24
    #39553680
Sintetik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена конца строки на запятку + вставка символов
еще есть paste -s -d
...
Рейтинг: 0 / 0
15.11.2017, 17:15
    #39553745
Sintetik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена конца строки на запятку + вставка символов
добавить символ в конец файла без создания нового файла echo "]" >> file
а как аналогично добавить в начало файла ?
...
Рейтинг: 0 / 0
15.11.2017, 17:42
    #39553758
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена конца строки на запятку + вставка символов
Андрей Панфиловsed -r ':a;N;$!ba;s/\n+/,/g'

О-о-о... Твоё кунг-фу сильнее моего.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.11.2017, 17:46
    #39553763
Sintetik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена конца строки на запятку + вставка символов
ну вроде собрал все вместе
sed -r ':a;N;$!ba;s/\n+/,/g' FILE; sed -i -e '1 s/^/[/;' FILE; echo "]" >> FILE
...
Рейтинг: 0 / 0
16.11.2017, 13:43
    #39554316
Sintetik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена конца строки на запятку + вставка символов
проявилась проблемка, sed не работает на файле 15 гигабайт, т.е. команда отрабатывает без ошибок, но ничего не меняется
та же команда на кусочке большого файла отрабатывает, чего делать?
...
Рейтинг: 0 / 0
16.11.2017, 17:20
    #39554535
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена конца строки на запятку + вставка символов
Sintetikпроявилась проблемка, sed не работает на файле 15 гигабайт, т.е. команда отрабатывает без ошибок, но ничего не меняется
та же команда на кусочке большого файла отрабатывает, чего делать?
У народа отрабатывает и на 25 Гб файлах.
Попробуйте лайф-хак OPTIMIZING FOR SPEED с предварительным find .
...
Рейтинг: 0 / 0
01.12.2017, 13:27
    #39562525
Sintetik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена конца строки на запятку + вставка символов
Andy_OLAPSintetikпроявилась проблемка, sed не работает на файле 15 гигабайт, т.е. команда отрабатывает без ошибок, но ничего не меняется
та же команда на кусочке большого файла отрабатывает, чего делать?
У народа отрабатывает и на 25 Гб файлах.
Попробуйте лайф-хак OPTIMIZING FOR SPEED с предварительным find .
там вопрос скорости, а у меня вопрос работоспособности, протестировал подробнее, граница проходит по 2G, народ говорит, что команда пытается засосать кусок в память, обламывается по нехватке памяти, но ничего не говорит
А так проблему решил другой комбинацией команд.
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Замена конца строки на запятку + вставка символов / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]