S3のパス( ls コマンドで指定)を使用して、すべてのファイルオブジェクトの内容をstdout
にダンプするbashスクリプトを開始しています。基本的に、S3を除き、cat /path/to/files/*
を複製します。 s3cat '/bucket/path/to/files/*'
。オプションを見る最初の傾向は、cp
コマンドを一時ファイルに使用してから、cat
を使用することです。
誰もこれを試しましたか、類似していますか、それを見つけられないコマンドがすでにありますか?
すべてのファイルオブジェクトの内容を標準出力にダンプします。
-
コマンドの宛先にaws s3 cp
を渡すと、これを実現できます。たとえば、$ aws s3 cp s3://mybucket/stream.txt -
。
あなたがしようとしているのはこのようなものですか? ::
#!/bin/bash
BUCKET=YOUR-BUCKET-NAME
for key in `aws s3api list-objects --bucket $BUCKET --prefix bucket/path/to/files/ | jq -r '.Contents[].Key'`
do
echo $key
aws s3 cp s3://$BUCKET/$key - | md5sum
done
「-」へのコピーをサポートしないバージョンのAWS CLIを使用している場合は、/ dev/stdoutも使用できます。
$ aws s3 cp --quiet s3://mybucket/stream.txt /dev/stdout
--quiet
フラグを使用して、次のような概要行が出力に追加されないようにすることもできます。
ダウンロード:s3://mybucket/stream.txt to ../../dev/stdout
s3streamcat を使用してみてください。bzip、gzip、xz形式もサポートしています。
でインストール
Sudo pip install s3streamcat
使用法:
s3streamcat s3://bucketname/dir/file_path
s3streamcat s3://bucketname/dir/file_path | more
s3streamcat s3://bucketname/dir/file_path | grep something