「/」で終わるテキスト行を削除します。

「/」で終わるテキスト行を削除します。

rsyncを使用して変更されたファイルのリストを生成し、そのリストを使用してファイルをs3にアップロードします。

rsync -av somefiles/ someotherfiles/ > list.txt


while read F  ; do
        echo $F
        aws s3 cp $lcDir/$F s3://durktest/blender/$F
done <list.txt

リスト内容の例

swresample-2.dll
swscale-4.dll
tahoe.log
ucrtbase.dll
vcomp140.dll
vcruntime140.dll
2.78/
2.78/config/
2.78/config/bookmarks.txt
2.78/config/recent-files.txt
2.78/config/userpref.blend
2.78/datafiles/
2.78/datafiles/colormanagement/
2.78/datafiles/colormanagement/config.ocio
2.78/datafiles/colormanagement/filmic/
2.78/datafiles/colormanagement/filmic/filmic_desat65cube.spi3d
2.78/datafiles/colormanagement/filmic/filmic_false_color.spi3d
2.78/datafiles/colormanagement/filmic/filmic_to_0-35_1-30.spi1d
2.78/datafiles/colormanagement/filmic/filmic_to_0-48_1-09.spi1d
2.78/datafiles/colormanagement/filmic/filmic_to_0-60_1-04.spi1d
2.78/datafiles/colormanagement/filmic/filmic_to_0-70_1-03.spi1d
2.78/datafiles/colormanagement/filmic/filmic_to_0-85_1-011.spi1d
2.78/datafiles/colormanagement/filmic/filmic_to_0.99_1-0075.spi1d
2.78/datafiles/colormanagement/filmic/filmic_to_1.20_1-00.spi1d
2.78/datafiles/colormanagement/luts/
2.78/datafiles/colormanagement/luts/aces_to_xyz.spimtx
2.78/datafiles/colormanagement/luts/adx_adx10_to_cdd.spimtx

ヒューズドライバとrsyncをs3で直接使用するよりも良い方法はありますか?

答え1

これを行うより良い方法があります。aws s3 sync

はい

aws s3 sync somefiles/ s3://durktest/blender

読むAWS CLI コマンドリファレンス詳細

答え2

で終わる行を削除するには、/次のようにしますsed

sed '/\/$/d'  

標準入力から標準出力にコピーするか、次を/使用しますgrep

grep -v '/$'  

おそらく他の方法もたくさんあります。

答え3

GNUの使用xargs:

grep -v '/$' list.txt |
  xargs -rd '\n' -I@FILE@ aws s3 cp "$lcDir/@FILE@" s3://durktest/blender/@FILE@

$lcDir含まれていないと仮定@FILE@

コードにはいくつかの問題があります。

  • 君が呼んでるからread時間もなく-r時間もない$IFS
  • $lcDirあなたは引用することを忘れました。$F
  • 使ってみましたか?echo
  • それにもかかわらず、このアプローチを使用すると、改行を含むファイル名に問題が発生します。

ループを本当に使用したい場合は、次のようにできます。

(
  ret=0
  while IFS= read -r F <&3; do
    case $F in
      (*/) ;;
      (*)
        printf '%s\n' "$F"
        aws s3 cp "$lcDir/$F" "s3://durktest/blender/$F" || ret=$?;;
    esac
  done 3< list.txt
  exit "$ret"
)    

duplicityどのAFAIKがAmazon s3をバックエンドとしてサポートしているかを検討することもできます。

関連情報