powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / cut хочу
16 сообщений из 16, страница 1 из 1
cut хочу
    #38230151
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть много-мегабайтный файл с таблицей. Надо вырез а ть из этого файла определенные колонки.
Идеально подошел бы стандартный cut, но у файла необычные разделители строк (\n легальный символ внутри полей). А стандартный cut использует \n для разделения на строки и это не меняется без перекомпиляции.
Думал попробовать awk использовать, но там сложности с заданием списка колонок, перечислять вручную все нужные колонки типа `print $1, $2, .... $123;` мне кажется не совсем правильным. А разбор списков как у cut "1-123,456-" на awk сделать не так просто.

Есть идеи как решить задачу наименьшей кровью? А то я уже начинаю склоняться к патченью cut'а.
...
Рейтинг: 0 / 0
cut хочу
    #38230184
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl,

find /usr -print0 | perl -0 -F'/' -an -e 'print((join "@", @F[1..2,4..5]), "\n");'

у -0 есть необязательный аргумент — разделитель записей
...
Рейтинг: 0 / 0
cut хочу
    #38231429
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мило. С этим действительно можно жить.
Одна проблема - на сервере где это будет крутится нету Перла. Но это поправимо :)
...
Рейтинг: 0 / 0
cut хочу
    #38231567
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если там \n - разрёшенный символ внтури поля то как в этом файле разделяются вообще строки (записи) ?
...
Рейтинг: 0 / 0
cut хочу
    #38231607
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕсли там \n - разрёшенный символ внтури поля то как в этом файле разделяются вообще строки (записи) ?Другим символом естественно.
У нас есть 32 непечатных символа с кодами от 0 до 31. Если из этого списка убрать девятый и тринадцатый (потому что они есть на клавиатуре и соответственно могут быть внутри текста) у нас еще остается 30 символов на выбор.
Сейчас я использую рожицы (chr(1) и chr(2)) - одну для разделения полей, другую для разделения строк.
...
Рейтинг: 0 / 0
cut хочу
    #38231730
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl,

Код: php
1.
cut -d $'\x01' -f <COLUMN> <FILE>
...
Рейтинг: 0 / 0
cut хочу
    #38231751
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usman,

А теперь иди и прочитай первый пост топика внимательнее.
...
Рейтинг: 0 / 0
cut хочу
    #38231792
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl,

Прочитал внимательно. Пример в моем посте считает
границей колонок - рожицу chr(1) и выводит из списка <COLUMNS> .
...
Рейтинг: 0 / 0
cut хочу
    #38231799
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usman,

А теперь прочитай ЕЩЁ внимательнее.
...
Рейтинг: 0 / 0
cut хочу
    #38231926
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl,

Код: php
1.
cat <FILE> | while read -d $'\x02' LINE; do echo $LINE | cut -d $'\x01' -f <COLUMNS>; done;
...
Рейтинг: 0 / 0
cut хочу
    #38233399
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usman,

Ну наконец-то. Суть проблемы ты уловил.
Теперь переходим на винды и теряем sh.... Ваше решение?
...
Рейтинг: 0 / 0
cut хочу
    #38233476
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlВаше решение? Поставить Cygwin и радоваться тому, что мой скрипт продолжает работает.
...
Рейтинг: 0 / 0
cut хочу
    #38482806
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlUsman,

Ну наконец-то. Суть проблемы ты уловил.
Теперь переходим на винды и теряем sh.... Ваше решение?

Белая Сова, ты великий воин, но в своём первом сообщении сам же упоминал awk; в уиндусе есть awk ?
...
Рейтинг: 0 / 0
cut хочу
    #38482860
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
volodin661в уиндусе есть awk ?
gawk.exe скопировать - неразрешимая задача.
...
Рейтинг: 0 / 0
cut хочу
    #38483184
Изопропилvolodin661в уиндусе есть awk ?
gawk.exe скопировать - неразрешимая задача.


awk - вне прадигмы работы в уиндосе.

Предлагаю ТС потренироваться с загрузкой структуры в экслель.
...
Рейтинг: 0 / 0
cut хочу
    #38484286
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилvolodin661в уиндусе есть awk ?
gawk.exe скопировать - неразрешимая задача.


разрешимая. и перл для уиндус поставить немногим дольше.
просто я за справедливость, в изначальном посте про мультиплатформенность нет ни слова.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / cut хочу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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