Удаление каретки

Discussion in 'Болталка' started by Bolito, 16 Oct 2023.

  1. Bolito

    Bolito New Member

    Joined:
    4 Oct 2023
    Messages:
    17
    Likes Received:
    0
    Reputations:
    0
    Не очень понятна суть операции. Открываю словарь и вижу что каждое новое слово с новой строки. Это плохо? И здесь присутствует символ каретки? (он же перенос строки)
    Пропустил через
    tr -d '\r' < 1.dic > bezCR.dic
    на выходе получаю тот же файл, пусть меньшего размера, но перенос строк вижу снова в нем. Новое слово с новой строки.
    И вторая непонятность- скачал словарь, где открыв блокнотом виндоус, виже просто налеплено в кучу. Никиих новое слово с новой строки нет. Как в этом случае быть? Как программа понимает, что это новое слово, а не одно большое?
     
  2. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
  3. Bolito

    Bolito New Member

    Joined:
    4 Oct 2023
    Messages:
    17
    Likes Received:
    0
    Reputations:
    0
    Про каретку я читал. Вопрос- если я удаляю перенос строки, то как тогда в нормальном файле каждое слово идет с новой строки и в столбик? Тогда зачем ее удалять?

    Эти команды что дают? И под линукс или винду они?

    Пишут, что открыть и сохранить блокнотом, он покажет кодировку, но блокнот пишет, что слишком большой файл.

    Так и не понял итого, как конвертировать. Главное, откуда и в какую кодировку.
     
  4. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    много вопросов когда тебе даже ссылку на вику дали, там же описано в какой ОС как оно работает и как оно выглядит в коде в байтах, и команду дал которая отображает последовательность байт чтоб ты понял что ты удаляешь и что остается.
    если тебе нужно подвинду и ты чайник)) тогда скачай geany (https://www.geany.org/) редактор в нем можно "вид - отобразить завершения строк" и потом сиволы завершения строки можно тупо мышкой выделить и через замену CTRL+H просто заменить на "ничто", то есть удалить.

    Screenshot_2023-10-17_01-06-14.png
     
    Bolito likes this.
  5. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    вот как работает команда tr -d '\r\n'
    Байты 0d 0a это \r \n


    2222.png
     
    alexzir and hydra like this.
  6. Bolito

    Bolito New Member

    Joined:
    4 Oct 2023
    Messages:
    17
    Likes Received:
    0
    Reputations:
    0
    Из чего я понимаю, что для того, чтобы оставить в файле новое слово с новой строки, нам надо оставить LF, а CR- это и есть перевод каретки, удалить. Но зачем? Чем тот же хэшкат не обработает эту каретку?
    Дальше, если мы удалим
    Байты 0d 0a это \r \n
    то в выходном файле будет все в кучу слеплено. А как тогда понимать, что это новое слово?
     
  7. Bolito

    Bolito New Member

    Joined:
    4 Oct 2023
    Messages:
    17
    Likes Received:
    0
    Reputations:
    0
    И еще вопрос про переводы строк или кодировку. Есть файл, все не могу разобраться с кодировкой.
    При открытии блокнотом, выглядит как на скрине. Пробовал разными блокнотами открывать, посмотреть что за кодировка- не получается. UTF-8 пишет, но не уверен, что верно. Хэшкат и евса спокойно видят отдельные слова и перебор по словам идет без проблем.
    Как из этого файла сделать нормаьно читаемый вид, где одна строчка- одно слово?

    И да, попробовал я /www.geany.org/- зависла сразу же, как 10 Гб словарь ей дал.
     

    Attached Files:

  8. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,108
    Likes Received:
    8,496
    Reputations:
    25
    Почему плохо ? Кому плохо ? О_о

    tr -d удаляет определенный символ. В твоем случае символ \r. Символом может быть не только буковы, такие как 'д' 'у' 'р' 'е' 'н' 'ь' но и вообще любой байт, например. Таким образом \n соответствует символу с кодом 0x0A, а \r - символу с кодом 0x0D.

    В Венде используются оба этих символа. Один отвечает за перевод строки, другой - за возврат каретки. В Маке (когда-то было во всяком случае) только возврат каретки. В Линухе - только \n (т.е 0x0A). В зависимости от того, откуда текстовый файл - для удаления этих символов используются разные параметры для tr. Но на самом деле после этого художества весь текст станет выглядеть слитно, без пробелов.

    1) Откуда этот файл ? Похоже что дело не в кодировке а в том что он по всей видимости просто сжат чем-то а-ля gzip. Для словарей это неплохое решение, которое очень сильно уменьшает их размер.
    2) Скриншот ноутпада помогает сильно меньше чем hex-дамп, который попросил b3 вот этой строкой:
    hexdump -C file | head -n 1
     
    alexzir and hydra like this.
  9. Bolito

    Bolito New Member

    Joined:
    4 Oct 2023
    Messages:
    17
    Likes Received:
    0
    Reputations:
    0
    С этим понятно, разобрался, спасибо. Удаляем только \r.

    С файлом из скриншота.
    1. Файл из weakpass.com
    он не сжат, он txt расширение. Хочу разобраться почему слитно все.
    2. эту команду под линуксом запустить? Из-под винды есть ей аналог?
     
  10. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,108
    Likes Received:
    8,496
    Reputations:
    25
    Расширение там может быть хоть exe. Или dll. Попробуй переименуй в dll :) Это ничего не значит.
    Если ты его тянул по сети - это надо быть довольно упоротым господином, чтобы его как-то не упаковать вообще. Я думаю они не такие упоротые и упаковали.
    Вероятнее всего в gzip.

    Поэтому под ляликсом если - тебе надо просто написать gunzip имя_файла.txt. И все будет ок.
    Но ввиду того что ты его уже покоцал - скачивать тебе его придется заново, если не осталось оригинала.
     
  11. hydra

    hydra Elder - Старейшина

    Joined:
    24 Jul 2015
    Messages:
    3,359
    Likes Received:
    36,705
    Reputations:
    71
    linux
    узнать кодировку:
    file -i file.txt
    сменить кодировку:
    iconv -f CP1251 -t UTF-8 source.txt > result.txt
     
    alexzir and DartPhoenix like this.
  12. Bolito

    Bolito New Member

    Joined:
    4 Oct 2023
    Messages:
    17
    Likes Received:
    0
    Reputations:
    0
    Запакован был, конечно. И распаковал.
    И это распакованный вариант.
     
  13. Bolito

    Bolito New Member

    Joined:
    4 Oct 2023
    Messages:
    17
    Likes Received:
    0
    Reputations:
    0
    file.txt: application/octet-stream; charset=binary

    Сделал, спасибо. И что нам это дает?

    Сейчас попробую сменить кодировку.
     
  14. Bolito

    Bolito New Member

    Joined:
    4 Oct 2023
    Messages:
    17
    Likes Received:
    0
    Reputations:
    0
    iconv: недопустимая входная последовательность в позиции 2318215
     
  15. hydra

    hydra Elder - Старейшина

    Joined:
    24 Jul 2015
    Messages:
    3,359
    Likes Received:
    36,705
    Reputations:
    71
    В файле мусор непонятного происхождения.Скорее всего смешали всякую хрень без разбору.Вот и видится как бинарник.Можно еще так попробовать но врядли.
    sed '/^[\t\n\r -~]*$/!d'