aibangjuxin / groovy

study groovy
1 stars 0 forks source link

GCP image copy #98

Open aibangjuxin opened 6 months ago

aibangjuxin commented 6 months ago

要使用命令行拷贝一个 Google 工程内的镜像到另一个工程,您可以使用 gcloud 命令。

以下是如何使用 gcloud 命令拷贝镜像的示例:

gcloud compute images copy SOURCE_IMAGE_NAME \
    --image-project=TARGET_PROJECT_ID \
    --image-name=NEW_IMAGE_NAME

其中:

例如,要将名为 my-image 的镜像从工程 my-source-project 拷贝到工程 my-target-project,并将其命名为 my-new-image,您可以使用以下命令:

gcloud compute images copy my-image \
    --image-project=my-target-project \
    --image-name=my-new-image

拷贝过程可能需要几分钟到几小时,具体取决于镜像的大小。

拷贝完成后,您可以在目标工程中使用新镜像。

请注意,您只能拷贝您有权访问的镜像。如果您没有源工程的访问权限,您将无法拷贝该工程中的镜像。

如果您想拷贝一个公共镜像,您可以使用以下命令:

gcloud compute images copy PUBLIC_IMAGE_NAME \
    --image-project=TARGET_PROJECT_ID \
    --image-name=NEW_IMAGE_NAME

其中:

例如,要将名为 ubuntu-20-04-lts 的公共镜像拷贝到工程 my-target-project,并将其命名为 my-new-image,您可以使用以下命令:

gcloud compute images copy ubuntu-20-04-lts \
    --image-project=my-target-project \
    --image-name=my-new-image

公共镜像的名称可以在 Google Cloud Marketplace 中找到。

请注意,您只能拷贝您有权访问的公共镜像。如果您没有公共镜像的访问权限,您将无法拷贝该镜像。

aibangjuxin commented 6 months ago

如果你想在匹配文件 file2.txt 之后,将 file1.txt 中的第三个字段显示在结果行里,你可以使用 awk 来实现。以下是一个示例:

awk 'FNR==NR {a[$1]=$3; next} {print $0, a[$2]}' file1.txt file2.txt

这个命令首先读取 file1.txt 并将第三个字段存储在数组中,然后读取 file2.txt,在匹配的情况下将 file1.txt 的第三个字段附加到结果行。请根据实际的字段位置和分隔符调整命令。