bash 스크립트에 도움이 필요합니다. 스크립트는 디렉토리의 모든 파일의 이름을 md5 sum + extension으로 바꿔야합니다.파일 이름을 md5 sum + extension (BASH)으로 바꿉니다.
아래의 bash 스크립트를 찾았지만 확장자를 추가 할 수 있도록 변경해야합니다.
md5sum * | sed 's/^\(\w*\)\s*\(.*\)/\2 \1/' | while read LINE; do mv $LINE; done
bash 스크립트에 도움이 필요합니다. 스크립트는 디렉토리의 모든 파일의 이름을 md5 sum + extension으로 바꿔야합니다.파일 이름을 md5 sum + extension (BASH)으로 바꿉니다.
아래의 bash 스크립트를 찾았지만 확장자를 추가 할 수 있도록 변경해야합니다.
md5sum * | sed 's/^\(\w*\)\s*\(.*\)/\2 \1/' | while read LINE; do mv $LINE; done
이 당신을 위해 작동 될 수 있습니다
# mkdir temp && cd temp && touch file.{a..e}
# ls
file.a file.b file.c file.d file.e
# md5sum * | sed -e 's/\([^ ]*\) \(.*\(\..*\)\)$/mv -v \2 \1\3/' | sh
`file.a' -> `d41d8cd98f00b204e9800998ecf8427e.a'
`file.b' -> `d41d8cd98f00b204e9800998ecf8427e.b'
`file.c' -> `d41d8cd98f00b204e9800998ecf8427e.c'
`file.d' -> `d41d8cd98f00b204e9800998ecf8427e.d'
`file.e' -> `d41d8cd98f00b204e9800998ecf8427e.e'
또는 GNU SED는 심지어 짧은 수행 할 수 있습니다
# md5sum * | sed -e 's/\([^ ]*\) \(.*\(\..*\)\)$/mv -v \2 \1\3/e'
내가이 길 갈 것 : 첫 번째 기간 이후, 예를 들어, 모든 것을 얻을 수
for F in $DIR/*.*; do
mv "$F" "$(md5sum "$F" | cut -d' ' -f1).${F##*.}";
done
사용 ${F#*.}
을 tar.gz
대신 gz
는 (귀하의 요구 사항에 따라 다름)이 같은
OSX :'$ DIR에 F에 대한 /*.*; mv "$ F" "$ (md5"$ F "| cut -d"-f4). $ {F ## *.} "; done' –
find . -type f -exec mv \{\} "`md5sum \{\} | sed 's/ .*//'`.`echo \{\} | awk -v FS='.' '{print $NF}'\"
또는 뭔가 :-) 할 것입니다. 사실, 이름에 .
이없는 파일에서는 실패하므로 find 명령의 파일 이름에 필터를 추가하는 것이 좋습니다.
HTH
Apple/OSX 버전은 다음과 같습니다 :'md5 * | $ \ mv -v "\ 1 \ 2"\ 3 \ 2 sed -e 's/MD5 \ ([^.] * \) \ (. [^)] * \))/'| sh' – fnl