我试图获取目录中文件的完整路径。到目前为止,这就是我的重击。
prefix="s3://${s3_bucket}/${s3_folder}/$(date --date="$i days ago" +"%Y/%m/%d")/"
#echo $prefix
aws s3 ls s3://${s3_bucket}/${s3_folder}/$(date --date="$i days ago" +"%Y/%m/%d")/ | sed -n 's/.*\([0-9][0-9]-h.*gz\)/\1/p' | awk '$0="${prefix}"$0' >> ${s3_files_1}
在我的输出中,得到以下信息:
${prefix}file1.gz
${prefix}file2.gz
我正在寻找的输出如下所示。
s3://my_bucket/my_folder/file1.gz
s3://my_bucket/my_folder/file2.gz
我的问题是awk命令解释变量$ {prefix}的方式。谁能帮忙吗?
您可以-v
用来将shell变量内容传递给awk:
prefix="s3://my_bucket/my_folder/"
echo "file1.gz" | awk -v myprefix="${prefix//\\/\\\\}" '{ print myprefix $0 }'
可悲的是,awk -v
这不是数据安全的。本示例使用参数扩展来避免反斜杠,以避免它们被弄乱。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句