Разделение файла на две части (за один проход)
Модераторы: /dev/random, Модераторы разделов
-
- Сообщения: 1588
- Статус: openSUSE Localization Team
- ОС: openSUSE Tumbleweed x86-64
Разделение файла на две части
Коллеги, подскажите, пожалуйста. Можно ли натравить grep или ещё что-то на файл/поток, чтобы за один проход выбрать строки, соответствующие заданному шаблону, в один файл, а все остальные - в другой. Сейчас приходится сначала делать grep, а потом grep -v для одного и того же файлы - душа просит оптимизации, чтобы grep два раза не вызывать и весь многомегабайтный файл не шерстить второй раз.
-
- Администратор
- Сообщения: 5400
- ОС: Gentoo
Re: Разделение файла на две части
Не проверял работоспособность, пишу по памяти, могут быть ошибки.
sed $'/шаблон/{w выход1\nd}' > выход2
sed $'/шаблон/{w выход1\nd}' > выход2
-
- Сообщения: 280
- ОС: OpenBSD
Re: Разделение файла на две части
возможно так
Код: Выделить всё
sed -e '/^something*/w /tmp/result.1' -e '/^something_else*/w /tmp/result.2' source_file
-
- Администратор
- Сообщения: 5400
- ОС: Gentoo