index.php?dir=foo/bar/&file=bar2.jpg를 foo/bar/bar2.jpg로 추출합니다.

index.php?dir=foo/bar/&file=bar2.jpg를 foo/bar/bar2.jpg로 추출합니다.

다음과 같은 이름을 가진 파일이 많이 있습니다.

index.php?dir=IOP%2FFOO%2FBAR%2F&file=ScanImage001.jpg

index.php?%2FNothing을 ' /' 로 바꾼 후 다음 dir=file=같이 Nothing으로 표시합니다.

IOP/FOO/BAR/ScanImage001.jpg

이제 첫 번째 파일의 이름을 두 번째 파일로 바꾸고 디렉터리를 만들고 싶습니다.

어떻게 해야 하나요?

ベストアンサー1

for i in *.jpg 
  do 
  b=$(echo $i | sed 's/.*dir=//' | sed 's/%2F/\//g' | sed 's/&file=//')
  mkdir -p "$(dirname "$b")
  mv "$i" "$b"
done

호출이 포함된 줄 sed에는 파일 이름을 검색해야 하는 전체 경로가 저장됩니다.
mkdir줄은 중간 디렉터리를 포함한 디렉터리를 생성하고 이미 존재하더라도 불평하지 않습니다.

おすすめ記事