Форум русскоязычного сообщества Ubuntu


Автор Тема: Чем заменить? Утилита column: lines are limited to MAX (2048) bytes in length…  (Прочитано 2155 раз)

0 Пользователей и 1 Гость просматривают эту тему.

zse

  • Автор темы
  • Гость
     Приветствую всех! С наступающим что ли…
     Хорошая утилита column однако вот это ограничение длинны строки печалит. В каком направлении искать аналоги или замему с использованием других команд?

Оффлайн ALiEN175

  • Администратор
  • Старожил
  • *
  • Сообщений: 6586
  • 20% Cooler
    • Просмотр профиля
sed, perl, awk?

примерчик бы - исходный файл и ваша команда. только под спойлер спрячьте, либо отдельным файлом прикрепите.
« Последнее редактирование: 27 Декабря 2017, 01:43:27 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

zse

  • Автор темы
  • Гость
     Спасибо, ALiEN175, ну вот так приблизительно выглядит ситуация:
     
(Нажмите, чтобы показать/скрыть)
     
     Я в этом во всём не сильно соображаю не специалист IT, просто в определённой степени владею английским и почитавши файлы помощи могу что-то там вдали „изваять😈“ по „образу и подобию“…

Оффлайн ALiEN175

  • Администратор
  • Старожил
  • *
  • Сообщений: 6586
  • 20% Cooler
    • Просмотр профиля
/home/HOME/3pa3oK.txt прикрепите

А то не совсем понятно. Только что строчку в 58Мб прогнал через column - выполнилось без ошибок
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

zse

  • Автор темы
  • Гость
     Я понял, ALiEN175, ну наверное эмитировать полностью мою ситуацию не очень удобно, частично так…
     У меня есть вот такая команда, ищет в большом файле :
(Нажмите, чтобы показать/скрыть)
     Если У Вас всё работает, то может это у меня что-то локально. Система обычная 14.04 английская…
     Если данные файла 3pa3oK.txt вытянув в одну строку ввести через echo то проблемы нет 😞 …
Код: (bash) [Выделить]
echo 'a a7z aaa aaaa aadd aalias aany aapt aaptitude aawk aaxu ac44 acat aCKpunT aclean acomm aconky aconvert acopy acp acpaldjvu adate adconf adiff adjvu adjvutxt adu aexec afind aG agrep ahead ahidden ahistory ahotkey ajjj akey akeycode akill akillall algf alias alink aln alocate als amaxdepth amv anautilus anot apassword apbm apdfgrep apgm apicture apkill appm apptop aps apt apttop aptдобавление arename aresize arotate asdiff ased ash astrings atail atar aterminal atime aTrash atrash atree aTT atxt2html atxthtml awhereis awifi awithout aword axargs axev axmacro axmodmap azim azzz'|awk 'ORS=(!(NR%11)?"\n":" ")' RS=" "|column -t
a          a7z       aaa        aaaa      aadd       aalias     aany           aapt     aaptitude  aawk       aaxu
ac44       acat      aCKpunT    aclean    acomm      aconky     aconvert       acopy    acp        acpaldjvu  adate
adconf     adiff     adjvu      adjvutxt  adu        aexec      afind          aG       agrep      ahead      ahidden
ahistory   ahotkey   ajjj       akey      akeycode   akill      akillall       algf     alias      alink      aln
alocate    als       amaxdepth  amv       anautilus  anot       apassword      apbm     apdfgrep   apgm       apicture
apkill     appm      apptop     aps       apt        apttop     aptдобавление  arename  aresize    arotate    asdiff
ased       ash       astrings   atail     atar       aterminal  atime          aTrash   atrash     atree      aTT
atxt2html  atxthtml  awhereis   awifi     awithout   aword      axargs         axev     axmacro    axmodmap   azim
azzz

Оффлайн ALiEN175

  • Администратор
  • Старожил
  • *
  • Сообщений: 6586
  • 20% Cooler
    • Просмотр профиля
column -t 3pa3oK.txt  - без ошибок

Будет правильнее, если озвучите первоначальную задачу: что делаете, зачем делаете? Без всяких представлений кода, просто словами объясните. 

UPD: думаю, проблема в том что где-то вылезают бинарные данные, а не символы...
Попробуйте так:
cat /home/AAA|grep -i ←‖a|sed 's/^.*←‖a/←‖a/'|grep -o '\ba\w*'|sort -u|tr '\n' ' '|sed ':a;N;$!ba;s/\n//g'\
|awk 'ORS=(!(NR%11)?"\n":" ")' RS=" " | tr -cd '[:print:]' | column -t
* тут ваш код не проверял - много всего (лень разбирать  :) ), суть в последнем tr - выводит только "символьные данные", а не бинарные. Конечно же, так как это только моя догадка, может и не сработать.
« Последнее редактирование: 27 Декабря 2017, 04:57:32 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

zse

  • Автор темы
  • Гость
     Спасибо большое, ALiEN175, за участие, причина найдена. В моём файле 3pa3oK.txt были кириллические символы 😞, если их транслитерировать, то проблема исчезает.
     Может column при правильных системных настройках и вообще всех прочих правильных настройках и кириллицу должна обрабатывать, ну вот у меня чего-то видать с этими настройками не так…
     А если у Вас 3pa3oK.txt с кириллицей обрабатывается программой column, значит у Вас с настройками всё хорошо! 😇
     Ещё раз спасибо!

Оффлайн ALiEN175

  • Администратор
  • Старожил
  • *
  • Сообщений: 6586
  • 20% Cooler
    • Просмотр профиля
iconv -f CP1251 -t UTF8
должно помочь с кириллицей (суть: символы не в UTF - беда)




Пользователь добавил сообщение 27 Декабря 2017, 06:33:30:
cat /home/AAA|grep -i ←‖a|sed 's/^.*←‖a/←‖a/'|grep -o '\ba\w*'|sort -u|tr '\n' ' '|sed ':a;N;$!ba;s/\n//g'\
|awk 'ORS=(!(NR%11)?"\n":" ")' RS=" " | iconv -f CP1251 -t UTF8 > /home/HOME/3pa3oK.txt
пробуйте
 
« Последнее редактирование: 27 Декабря 2017, 06:33:30 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

zse

  • Автор темы
  • Гость
     Спасибо, ALiEN175, что не забываете! Я немного не там живу 😈 [2017 Dec 27; 06:09 AM] потому сразу не ответил спать пошёл…
Дело даже, как оказалось не в кодировке, хотя это тоже имеет значение.
     Думаю проблема была в символе переноса строки или в символе окончания строки.
Код: (bash) [Выделить]
echo $VAQ|awk 'ORS=(!(NR%10)?"\n":" ")' RS=" " |column -t
     Переменная [$VAQ] ⟶ это любые слова в том числе и кириллические, это результат любой команды которая „вытягивает“ (преобразовывает, наверное правильно) текст в одну строку.

 

Страница сгенерирована за 0.056 секунд. Запросов: 23.