【发布时间】:2020-12-31 05:10:53
【问题描述】:
我需要读取一个文件并将每一行拆分为一个域和一个应用程序字符串
domain.com-backend
domain.com-frontend
对于每一行我需要调用一个 docker build 命令(回显只是为了查看命令):
cat $FILE | grep '-' | xargs -I {} echo docker build -t {full} -f apps/{domain}/{application}/Dockerfile .
所以在示例中我希望输出
docker build -t domain.com-backend -f apps/domain.com/backend/Dockerfile .
docker build -t domain.com-frontend -f apps/domain.com/frontend/Dockerfile .
【问题讨论】:
-
为什么不使用
while循环和read命令? -
@DigvijayS 没想到。我需要在 CI 中调用命令,所以我之前使用了类似这样的东西作为一个衬里,而没有构建一个“真正的”脚本。
-
是的,你可以写一行。更新我的答案
-
使用 xargs 这么重要吗?为什么不使用 awk ?
-
如果您使用 xargs,您可能会遇到难以阅读/修改的命令,为了修改参数,您必须执行以下操作:stackoverflow.com/questions/45895071/…。一个while循环也可以很容易地写成单行,如果这是你关心的,它是一样的。