首页 > 解决方案 > 如何使用从列表中获取的变量输入文件 - bash

问题描述

可以说我有一个文件myfile.csv。在这个文件中,我有一个这样的列表:

black
white
grey
orange
red

我希望任何行都是一个变量,并使用该变量进入具有此名称的目录。

例子:

for i in $( myfile.csv ); do
    cd /directory/$i && cat anotherfile.txt

它不起作用。我会很高兴得到你的帮助。:)

标签: bash

解决方案


您无需输入目录即可对包含的文件进行分类。遍历文件的所有行是whileand的工作read

while IFS= read -r dir; do
   if [[ -f "$dir/anotherfile.txt" ]]; then
       cat "$dir/anotherfile.txt"
   else
       printf 'WARNING: %s not found\n' "$dir/anotherfile.txt"
   fi
done < myfile.csv

当然,这仅在您的myfile.csv文件每行只有一个目录名时才有效...


推荐阅读