Puncte:0

Script Shell pentru a copia mai multe fișiere

drapel gb

Încerc să fac un script shell care să copieze o grămadă de fișiere, dar se luptă cu configurarea unei bucle pentru a citi fișierele:

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

Aici AAAA, LL, ZZ sunt numere pe care trebuie să le parcurg.

Trebuie să parcurg toți anii, toate lunile și apoi datele pentru a salva toate fișierele. Anunță-mă dacă se poate face asta?

Mulțumiri

waltinator avatar
drapel it
Citiți `man seq`.
drapel kr
adăugați toate combinațiile disponibile de YYYYMMDD la o matrice și utilizați o buclă for pentru a rula comanda de copiere pentru fiecare iterație?
Puncte:0
drapel cn

Puteți realiza acest lucru folosind aws s3 sincronizare cu wildcard și --run uscat care produce rezultatul:

$ aws s3 sync s3://noaa-bdp-pds . \
  --exclude „*” --include „gdas.*/00/atmos/hdas.t00z.sfcf000.nc”

(dryrun) descărcați s3://noaa-bdp-pds/gdas.20210001/00/atmos/hdas.t00z.sfcf000.nc la noaa-bdp-pds /gdas.20210001/00/atmos/hdas.t000z.sf. nc
 ...
 ...

Nu uitați să utilizați un director gol, altfel poate interfera cu ieșirea.

Acum, puteți folosi acest lucru pentru a construi o buclă:

#!/bin/bash
pentru linia în $( \
    aws s3 sync s3://noaa-bdp-pds . \
    --exclude „*” --include „gdas.*/00/atmos/hdas.t00z.sfcf000.nc” | awk '/s3:\/\//{printează $3}' --dryrun \
); do
    [[ $line =~ .*/gdas.(.*)/00/.* ]] && \
    echo aws s3 cp ${BASH_REMATCH[0]} s3://s3internal/raw/HDAS/hdas.${BASH_REMATCH[1]}_00Z.nc
Terminat

Când sunteți mulțumit de rezultat, eliminați ecou pentru a copia fișierele.

bac0n avatar
drapel cn
legate de: [AWS S3 ls wildcard support](https://github.com/aws/aws-cli/issues/3784)

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.