我在一个包含一些行的目录中有一个文件,例如10。在该目录中,我还有其他子目录,例如100。我想要的是:转到与该子目录“匹配”的每个子目录。文件中存在目录名称。因此,基本上,我需要一种“匹配字符串”条件,该条件将比较文件的每一行和每个子目录,然后在存在匹配项时转到特定的子目录。
文件如下:
SCEL16_4_2_2_0_0_2
SCEL1_1_1_1_0_0_0
SCEL32_4_4_2_2_2_0
SCEL32_4_4_2_2_2_0
SCEL32_4_4_2_2_2_0
SCEL32_4_4_2_2_2_0
SCEL32_4_4_2_2_2_0
SCEL32_4_4_2_2_2_0
SCEL8_8_1_1_0_0_7
SCEL8_8_1_1_0_0_6
该目录包含大约100个或更多具有相似命名的子目录。我需要一种方法来仅浏览文件中提到的这10个子目录。我尝试做类似的事情:
for i in */; do echo $i; done
告诉我当前目录中存在的所有子目录,但是我不知道如何在上述命令中在此处施加“匹配”条件。有什么快速解决的办法吗?
答案 0 :(得分:0)
让我们说包含列表的文件是“ list_dirs”
使用类似下面的逻辑
for dir in list_dirs; do
perm=$(ls -la $dir 2>/dev/null);
if [-n $perm ];
then
// here do whatever is need if it matches
else
// else part here
fi
逻辑:
ls -la
将检查目录是否存在,并且由于存在2>/dev/null
,它将使perm变量为空。