首页 > 解决方案 > 命令从谷歌云存储桶中的文件中的“字符串”的grep中查找文件名?

问题描述

我在 GCS 存储桶中有很多文件,我想找到包含我的数据的文件名(例如:grep "APPLE")。有没有办法根据 grep 命令找到文件名?

以下命令仅产生具有相应行的数据,但我想找到 grep 数据所在的文件名

gsutil cat gs://my-bucket/part-2020-01-09** | grep 'APPLE'

有没有办法找到相应的文件名?

标签: google-cloud-platformgoogle-cloud-storage

解决方案


为此,我将编写如下脚本:

for i in $(gsutil ls gs://my-bucket/part-2020-01-09**) 
do 
    gsutil cat ${i} | grep 'APPLE' > /dev/null
    if [ "${?}" == "0" ] 
    then 
        echo ${i}
    fi
done

但它不如 cat 高效,因为它为每个文件执行 API 调用。我不知道您拥有的文件数量以及它是否是可接受的解决方案。


推荐阅读