需要同时读取两个内容作为变量

需要同时读取两个内容作为变量

我需要阅读下面具有两个变量相同标签的文件

 cat images_new.txt
/proj-bssf/adp-log/release/eric-data-search-engine-pm-metrics:4.0.0-23
/proj-document-database-pg/data/eric-data-document-database-bra:3.3.0-20
/proj-orchestration-so/eric-eo-api-gateway:1.0.1-41
/proj-am/releases/eric-am-common-wfs-ui:0.0.217-1

就像需要将“/proj-bssf/adp-log/release/eric-data-search-engine-pm-metrics”读取为一个变量,并将标签 4.0.0-23 作为另一个变量

对象是两个使用单个脚本从 docker 私有注册表检索图像摘要信息

答案1

尝试

while IFS=: read f v 
do
   echo "f $f"
   echo "v $v"
done < file

这给了

f /proj-bssf/adp-log/release/eric-data-search-engine-pm-metrics
v 4.0.0-23
f /proj-document-database-pg/data/eric-data-document-database-bra
v 3.3.0-20
f /proj-orchestration-so/eric-eo-api-gateway
v 1.0.1-41
f /proj-am/releases/eric-am-common-wfs-ui
v 0.0.217-1

在哪里

  • IFS=:告诉 read 用作:分隔符

你也可以使用

cat file | while IFS=: read f v 
do
   ## more than 50 lines of code
   echo "f $f"
   echo "v $v"
done
  • 以猫的无用使用为代价
  • 如果循环很长,可能会更容易阅读。
  • 这会让我投反对票。

相关内容