Почему sha1sum действует по-другому с тем же входом?

Я пытаюсь копировать поведение sha1sum исполняемого файла в некотором коде Java, однако, в процессе я обнаружил, что sha1sum, кажется, ведет себя по-другому, учитывая тот же вход в двух сценариях.

Примите вход '12 345' без одинарных кавычек и без новой строки.

Если я поместил эти данные в файл (file1) и выполнил sha1sum из командной строки:

$ sha1sum file1
8cb2237d0679ca88db6464eac60da96345513964  file1

Однако, если я делаю это, я получаю другой результат:

$ cat file1 | grep -vi foo | grep -vi bar | sha1sum
2672275fe0c456fb671e4f417fb2f9892c7573ba  -

Используя апачскую банку кодека свободного городского населения, я могу читать в file1, для получения это - содержание, и выполните .shahex () на содержании и получите первый результат. Однако я должен получить второй результат (из-за унаследованного кода), и я не могу выяснить, почему sha1sum ведет себя по-другому, или что grep делает к входу.

Система выполняет CentOS 5.4 с sha1sum 5.97

Какие-либо указатели?

5
задан 23.06.2010, 08:04

3 ответа

grep добавляет новая строка.

$ hd file1
00000000  31 32 33 34 35                                    |12345|
00000005
$ grep -vi test <file1 | hd
00000000  31 32 33 34 35 0a                                 |12345.|
00000006

Для получения того же результата, необходимо добавить сингл \n в конце входа, если это не присутствует.

14
ответ дан 07.12.2019, 16:46

Подтвердите, что последовательности идентичны, во-первых:

$ cat file1 | grep -vi foo | grep -vi bar > /tmp/junk
$ cmp file1 /tmp/junk

иначе Вы будете просто преследовать хвост.

8
ответ дан 07.12.2019, 16:46

Ваш grep искажается, чтобы иметь - цвет? Вы проверили вывод своего конвейера без sha1sum в нем?

1
ответ дан 07.12.2019, 16:46

Теги

Похожие вопросы