Jak przekonwertować nazwy plików systemu Windows (z checksums.md5) na notację * nix, aby móc używać go w mojej powłoce z md5sum?


1

Mam kilka checksums.md5plików weryfikacyjny z dysku NTFS zewnętrznego, ale z użyciem notacji systemu Windows: \zamiast /, przestrzenie między nazwami plików (nie uciekł), zastrzeżone znaki powłoki (jak (, &, ', aby wymienić tylko kilka).

checksums.md5Ma kilka sum kontrolnych i nazwach:

;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

Chcę to wykorzystać checksums.md5do zweryfikowania plików, które skopiowałem na komputer: ale korzystam z systemu Linux, więc muszę przekonwertować nazwy checksums.md5z systemu Windows na system Linux, aby użyć md5sumnarzędzia z powłoki. Pierwsza linia w moim przykładzie brzmiałaby:

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

Czy jest w tym jakaś aplikacja (konwertująca listę plików, z notacji cmd Windows, na notację powłoki Linuksa), czy też muszę utworzyć skrypt bash za pomocą sed, który po prostu „zamienia” co jest „nie tak” na nazwy plików?


Co próbujesz zweryfikować? Czy to sam system plików NTFS?
OldWolf,

Nie, pliki skopiowane na zewnętrzny dysk NTFS miały sumę kontrolną MD5, kopiuję je ponownie na maszynę i chcę zweryfikować sumy kontrolne, ale checksums.md5 używa notacji plików Windows i muszę je przekonwertować na * nix. Zredagowałem pytanie, podając więcej informacji i konkretny przykład.
Ktoś nadal cię używa MS-DOS

2
To nie jestcmdnotacja Windows ”. Gdyby tak było, ampersand uciekłby z karetką. To tylko surowa, nieozdobiona nazwa ścieżki.
JdeBP,

Odpowiedzi:


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

md5sumFormat nie korzysta z żadnej „notacji shell” - ani cmdani sh. Każda linia ma dokładnie dwa pola (skrót i nazwę pliku), więc nazwy plików nie powinny wymagać zmiany znaczenia.

Tylko różnicą jest wykorzystanie \w porównaniu z /separatorem ścieżki w różnych systemach. (Większość programów Windows /też to akceptuje .) Wystarczy wymienić wszystkie ukośniki odwrotne i gotowe.


Musiałem także dodać „./” na początku wiersza, ponieważ sumy kontrolne nie zawierają pełnej ścieżki ... ale dzięki. Ponieważ to nie działało, myślałem, że to znaki specjalne, ale twoja odpowiedź sprawiła, że ​​szukałem innych problemów (dlatego oznaczyłem to jako zaakceptowane). Dzięki.
Ktoś nadal cię używa MS-DOS

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.