1

У меня есть некоторые файлы проверка checksums.md5 из NTFS внешнего жесткого диска, но с использованием окна обозначения: \ вместо / пробела между именами файлов (не ускользнули), зарезервированные символы оболочки (например , ( & ' чтобы назвать несколько).

checksums.md5 имеет несколько контрольных сумм и имен файлов:

;Created by program
;2010

f12f75c1f2d1a658dc32ca6ef9ef3ffc  *My Windows & Files (2010)\[bak]\testing.wmv
53445e1a0821b790872e60bd7a166887  *My Windows Files' 2 (2012)\[bak]\testing.wmv
53445e1a0821b790872e60bd7a166887  *My Windows Files ˜nicóde (2012)\[bak]\testing.wmv
;Finished

Я хочу использовать этот checksums.md5 для проверки файлов, которые я скопировал на мою машину: но я нахожусь в Linux, поэтому мне нужно преобразовать имена внутри checksums.md5 из Windows в Linux, чтобы использовать утилиту md5sum из оболочка Первая строка в моем примере будет выглядеть так:

f12f75c1f2d1a658dc32ca6ef9ef3ffc  My\ Windows\ \&\ Files\ \(2010\)/\[bak\]/testing.wmv

Есть ли какое-то приложение для этого (преобразование списка файлов из нотации Windows cmd в нотацию оболочки Linux) или мне нужно будет создать сценарий bash, используя sed, который просто "заменяет" то, что "неправильно", на имена файлов?

2 ответа2

2
sed -i 's|\\|/|g' checksums.md5

Выходной формат md5sum не использует никаких "обозначений оболочки" - ни cmd ни sh . Каждая строка имеет ровно два поля (хэш и имя файла), поэтому для имен файлов не требуется экранирования.

Единственное отличие - использование \ против / в качестве разделителя пути в разных системах. (Большинство программ Windows принимают / тоже.) Просто замените все обратные слеши, и все готово.

1

Не зря md5deep доступен как для Windows, так и для Linux и на 100% кроссплатформенно совместим. Проверьте это на http://md5deep.sourceforge.net/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .