Не очень понятна суть операции. Открываю словарь и вижу что каждое новое слово с новой строки. Это плохо? И здесь присутствует символ каретки? (он же перенос строки) Пропустил через tr -d '\r' < 1.dic > bezCR.dic на выходе получаю тот же файл, пусть меньшего размера, но перенос строк вижу снова в нем. Новое слово с новой строки. И вторая непонятность- скачал словарь, где открыв блокнотом виндоус, виже просто налеплено в кучу. Никиих новое слово с новой строки нет. Как в этом случае быть? Как программа понимает, что это новое слово, а не одно большое?
Про каретку я читал. Вопрос- если я удаляю перенос строки, то как тогда в нормальном файле каждое слово идет с новой строки и в столбик? Тогда зачем ее удалять? Эти команды что дают? И под линукс или винду они? Пишут, что открыть и сохранить блокнотом, он покажет кодировку, но блокнот пишет, что слишком большой файл. Так и не понял итого, как конвертировать. Главное, откуда и в какую кодировку.
много вопросов когда тебе даже ссылку на вику дали, там же описано в какой ОС как оно работает и как оно выглядит в коде в байтах, и команду дал которая отображает последовательность байт чтоб ты понял что ты удаляешь и что остается. если тебе нужно подвинду и ты чайник)) тогда скачай geany (https://www.geany.org/) редактор в нем можно "вид - отобразить завершения строк" и потом сиволы завершения строки можно тупо мышкой выделить и через замену CTRL+H просто заменить на "ничто", то есть удалить.
Из чего я понимаю, что для того, чтобы оставить в файле новое слово с новой строки, нам надо оставить LF, а CR- это и есть перевод каретки, удалить. Но зачем? Чем тот же хэшкат не обработает эту каретку? Дальше, если мы удалим Байты 0d 0a это \r \n то в выходном файле будет все в кучу слеплено. А как тогда понимать, что это новое слово?
И еще вопрос про переводы строк или кодировку. Есть файл, все не могу разобраться с кодировкой. При открытии блокнотом, выглядит как на скрине. Пробовал разными блокнотами открывать, посмотреть что за кодировка- не получается. UTF-8 пишет, но не уверен, что верно. Хэшкат и евса спокойно видят отдельные слова и перебор по словам идет без проблем. Как из этого файла сделать нормаьно читаемый вид, где одна строчка- одно слово? И да, попробовал я /www.geany.org/- зависла сразу же, как 10 Гб словарь ей дал.
Почему плохо ? Кому плохо ? О_о tr -d удаляет определенный символ. В твоем случае символ \r. Символом может быть не только буковы, такие как 'д' 'у' 'р' 'е' 'н' 'ь' но и вообще любой байт, например. Таким образом \n соответствует символу с кодом 0x0A, а \r - символу с кодом 0x0D. В Венде используются оба этих символа. Один отвечает за перевод строки, другой - за возврат каретки. В Маке (когда-то было во всяком случае) только возврат каретки. В Линухе - только \n (т.е 0x0A). В зависимости от того, откуда текстовый файл - для удаления этих символов используются разные параметры для tr. Но на самом деле после этого художества весь текст станет выглядеть слитно, без пробелов. 1) Откуда этот файл ? Похоже что дело не в кодировке а в том что он по всей видимости просто сжат чем-то а-ля gzip. Для словарей это неплохое решение, которое очень сильно уменьшает их размер. 2) Скриншот ноутпада помогает сильно меньше чем hex-дамп, который попросил b3 вот этой строкой: hexdump -C file | head -n 1
С этим понятно, разобрался, спасибо. Удаляем только \r. С файлом из скриншота. 1. Файл из weakpass.com он не сжат, он txt расширение. Хочу разобраться почему слитно все. 2. эту команду под линуксом запустить? Из-под винды есть ей аналог?
Расширение там может быть хоть exe. Или dll. Попробуй переименуй в dll Это ничего не значит. Если ты его тянул по сети - это надо быть довольно упоротым господином, чтобы его как-то не упаковать вообще. Я думаю они не такие упоротые и упаковали. Вероятнее всего в gzip. Поэтому под ляликсом если - тебе надо просто написать gunzip имя_файла.txt. И все будет ок. Но ввиду того что ты его уже покоцал - скачивать тебе его придется заново, если не осталось оригинала.
linux узнать кодировку: file -i file.txt сменить кодировку: iconv -f CP1251 -t UTF-8 source.txt > result.txt
file.txt: application/octet-stream; charset=binary Сделал, спасибо. И что нам это дает? Сейчас попробую сменить кодировку.
В файле мусор непонятного происхождения.Скорее всего смешали всякую хрень без разбору.Вот и видится как бинарник.Можно еще так попробовать но врядли. sed '/^[\t\n\r -~]*$/!d'