wget을 가진 Sane 파일 이름


2

wget을 사용하여 파일 이름을 지난 추가 정보가 포함 된 URL에서 파일 목록을 다운로드하고 있습니다. 결과 파일 이름은 다음과 같습니다.

pythonbook.pdf@y=11&x=123

내가 정말로 원하는 것은 pythonbook.pdf 부분입니다. 내 파일 목록은 기본적으로 다음과 같은 URL 목록입니다.

https://dl.domain.com/pythonbook.pdf@y=11&x=123

파일 이름의 불필요한 부분을 어떻게 가질 수 없습니까?


1
URL 목록에 공통 부분이 동일한 pythonbook.pdf경우 해당 매개 변수 문자열 만 해당 파일 이름을 구별합니다. 이러한 경우 최종 명명 규칙을 정교화해야합니다
RomanPerekhrest

답변:


1

이 경우 전체 목록을 반복하는 것이 가장 쉬운 방법 wget입니다 (출력 파일 이름의 동적 작성을 지원하지 않는 것 같습니다).

while read url; do
    t=${url##*/}  # removes protocol and hostname
    pdf=${t%@*}   # removes part from @ onwards
    wget -O "$pdf" "$url"
done < LIST-OF-URLs

url파일의 URL 목록에서 읽은 URL이며 pdf파일 이름의 일부일뿐입니다.


이름이 고유하지 않은 경우 파일 이름에 숫자를 추가 할 수 있습니다 (예 : 모든 파일이 PDF라고 가정).

i=0
while read url; do
    t=${url##*/}      # removes protocol and hostname
    pdf=${t%.pdf@*}   # removes part from .pdf@ onwards
    wget -O "$pdf-$i.pdf" "$url"
    ((i++))
done < LIST-OF-URLs

또는 (파일에 다른 접미사가있는 경우)

i=0
while read url; do
    t=${pdf##*/}    # removes protocol and hostname
    pdf=${t%@*}     # removes part from @ onwards
    wget -O "$i-$pdf" "$url"
    ((i++))
done < LIST-OF-URLs

$ pdf 부분은 새로운 파일 이름입니까?
Columbia_Bob

@Columbia_Bob uups, 명명이 약간 혼란 스러웠습니다. 지금 더 나아지기를 바랍니다.
nohillside
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.