$ echo *
a b c
$ cat *
file 1
file 2
file 3
$ factor -e=" \
> USING: globs io sequences sorting io.files io.encodings.utf8 ; \
> \"*\" glob natural-sort [ utf8 file-lines ] map concat [ print ] each "
file 1
file 2
file 3
Выходы одинаковы с использованием шарика фактора и шарла оболочки. A diff
на выходах показывает, что они точно совпадают.Получите ту же сумму SHA-224 в Factor как coreutils sha224sum
$ factor -e=" \
> USING: math.parser checksums checksums.sha globs io sequences sorting io.files io.encodings.utf8 ; \
> \"*\" glob natural-sort [ utf8 file-lines ] map concat sha-224 checksum-lines bytes>hex-string print "
0feaf7d5c46b802404760778091ed1312ba82d4206b9f93c35570a1a
$ cat * | sha224sum
d1240479399e5a37f8e62e2935a7ac4b9352e41d6274067b27a36101
Но контрольные суммы не совпадают, и не будет md5
контрольных сумм. Почему это? Как получить такую же контрольную сумму в Factor, как в coreutils sha224sum
?
Изменение кодировки на ascii
не изменяет выход, равно "\n" join sha-224 checksum-bytes
вместо checksum-lines
.
Вам не хватает "\ n" присоединиться к anter concat? Я думаю, что код фактора хеширует массив из 3-х файлов –
nevermind, строки контрольной суммы присоединяются к ascii 10, так что это не так:/ –
О, это прослеживающая новая строка, которая отсутствует! На это был дан ответ в списке рассылки, было бы неплохо дать ответ и здесь. –