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


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

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

zse

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

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4305
  • Capture the truth
    • Просмотр профиля
sed, perl, awk?

примерчик бы - исходный файл и ваша команда. только под спойлер спрячьте, либо отдельным файлом прикрепите.
« Последнее редактирование: 27 Декабрь 2017, 01:43:27 от ALiEN175 »
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Nvidia 8500GT :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

zse

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

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4305
  • Capture the truth
    • Просмотр профиля
/home/HOME/3pa3oK.txt прикрепите

А то не совсем понятно. Только что строчку в 58Мб прогнал через column - выполнилось без ошибок
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Nvidia 8500GT :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

zse

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

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4305
  • Capture the truth
    • Просмотр профиля
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 »
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Nvidia 8500GT :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

zse

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

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4305
  • Capture the truth
    • Просмотр профиля
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 »
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Nvidia 8500GT :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

zse

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

 

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