컬을 사용하여 CSV 파일 목록 다운로드

컬을 사용하여 CSV 파일 목록 다운로드

JPG URL 확장자를 가진 CSV가 있습니다.

http://www.example.com/images/[url_extension]

컬을 사용하여 CSV를 반복하고 각 확장자에서 jpg를 다운로드하고 싶습니다. 지금까지 다음이 있지만 구문에 문제가 있습니다. 어떤 도움이라도 대단히 감사하겠습니다.

#!/bin/bash
file=urlextensions.csv

while read line
do
outfile=$(echo $line | awk 'BEGIN { FS = "/" } ; {print $NF}')
curl -o "$http://www.example.com/images/" "$line" 
done < "$/Users/Me/Documents/urlextensions.csv"

답변1

코드에 몇 가지 오류가 있습니다.

  1. 2번째 줄에서 정의 file하지만 루프에서는 사용하지 마세요.
  2. $그것을 앞에 놓으면 쉘이 그것을 대체하려고 시도하게 되는데, 이는 $http또는 를 실행할 때 원하는 것이 아닐 수도 있습니다 $/Users.
  3. 루프에서 정의 outfile하지만 사용하지 마세요. 어쩌면 당신은 그것을 -o곱슬 라인 에 넣고 싶을 수도 있습니다 .
  4. 컬에 대한 인수는 -o파일 이름이어야 하지만 거기에 URL을 입력합니다.
  5. 기본 URL( http://www.example.com/images)과 여기에 추가하는 부분은 공백으로 구분되지 않고 동일한 매개변수에 있어야 합니다. 그렇지 않으면 쉘이 두 개의 매개변수가 필요하다고 생각하게 됩니다.

그래서 나는 다음과 같이 끝납니다.

#!/bin/bash

filename=./extensions.txt

while read line || [[ -n "$line" ]]; do
    echo downloading $line
    curl -o $line "http://example.com/$line"
done < "$filename"

파일 이름에 넣고 read_examp실행 가능하게 만들면 다음과 같이 작동하는 것을 볼 수 있습니다.

chicks$ cat extensions.txt 
foo
bar
baz
chicks$ ./read_examp 
foo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1270  100  1270    0     0  41794      0 --:--:-- --:--:-- --:--:-- 42333
bar
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1270  100  1270    0     0  53987      0 --:--:-- --:--:-- --:--:-- 55217
baz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1270  100  1270    0     0  48366      0 --:--:-- --:--:-- --:--:-- 48846
chicks$ ls -l `cat extensions.txt`
-rw-r--r--  1 chicks  staff  1270 Oct  7 10:01 bar
-rw-r--r--  1 chicks  staff  1270 Oct  7 10:01 baz
-rw-r--r--  1 chicks  staff  1270 Oct  7 10:01 foo

참고: CSV를 언급했지만 예제 코드에서는 이를 전혀 처리하지 않는 것 같습니다. 뭔가로 확장할 수 있어요이와 같이전체 행을 사용하는 대신 CSV에서 필드를 추출합니다.

관련 정보