Điểm:0

Tập lệnh Shell để sao chép nhiều tệp

lá cờ gb

Tôi đang cố gắng thực hiện một tập lệnh Shell sao chép một loạt tệp nhưng gặp khó khăn với việc thiết lập một vòng lặp để đọc qua các tệp:

aws s3 cp s3://noaa-bdp-pds/gdas.YYYYMMDD/00/atmos/hdas.t00z.sfcf000.nc s3://s3internal/raw/HDAS/hdas.YYYYMMDD_00Z.nc

Ở đây YYYY, MM, DD là những số mà tôi cần lặp lại.

Tôi cần lặp lại tất cả các năm, tất cả các tháng và sau đó là ngày để lưu tất cả các tệp. Hãy cho tôi biết nếu điều này có thể được thực hiện?

Cảm ơn

waltinator avatar
lá cờ it
Đọc `man seq`.
lá cờ kr
thêm tất cả các kết hợp có sẵn của YYYYMMDD vào một mảng và sử dụng vòng lặp for để chạy lệnh sao chép cho mỗi lần lặp lại?
Điểm:0
lá cờ cn

Bạn có thể đạt được điều này bằng cách sử dụng đồng bộ aws s3 với ký tự đại diện và --dryrun mà tạo ra đầu ra:

$ aws s3 đồng bộ hóa s3://noaa-bdp-pds . \
  --exclude "*" --include "gdas.*/00/atmos/hdas.t00z.sfcf000.nc"

(chạy khô) tải xuống s3://noaa-bdp-pds/gdas.20210001/00/atmos/hdas.t00z.sfcf000.nc về noaa-bdp-pds /gdas.20210001/00/atmos/hdas.t00z.sfcf000. nc
 ...
 ...

Hãy nhớ sử dụng một thư mục trống, nếu không nó có thể ảnh hưởng đến đầu ra.

Bây giờ, bạn có thể sử dụng điều này để xây dựng một vòng lặp:

#!/bin/bash
cho dòng trong $( \
    đồng bộ hóa aws s3 s3://noaa-bdp-pds . \
    --exclude "*" --include "gdas.*/00/atmos/hdas.t00z.sfcf000.nc" | awk '/s3:\/\//{print $3}' --dryrun \
); làm
    [[ $line =~ .*/gdas.(.*)/00/.* ]] && \
    echo aws s3 cp ${BASH_REMATCH[0]} s3://s3internal/raw/HDAS/hdas.${BASH_REMATCH[1]}_00Z.nc
xong

Khi bạn hài lòng với kết quả, hãy xóa tiếng vang để sao chép các tập tin.

bac0n avatar
lá cờ cn
liên quan: [Hỗ trợ ký tự đại diện AWS S3 ls](https://github.com/aws/aws-cli/issues/3784)

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.