![需要同时读取两个内容作为变量](https://linux22.com/image/175191/%E9%9C%80%E8%A6%81%E5%90%8C%E6%97%B6%E8%AF%BB%E5%8F%96%E4%B8%A4%E4%B8%AA%E5%86%85%E5%AE%B9%E4%BD%9C%E4%B8%BA%E5%8F%98%E9%87%8F.png)
我需要阅读下面具有两个变量相同标签的文件
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
- 以猫的无用使用为代价
- 如果循环很长,可能会更容易阅读。
- 这会让我投反对票。