【发布时间】:2018-08-27 12:00:10
【问题描述】:
例如,我有 7 个目录,每个目录包含 4 个文件。这 4 个文件遵循以下命名约定 name_S#_L001_R1_001.fastq.gz。 sed 命令是为了部分保留唯一的文件名。
我有一个嵌套的 for 循环,以便进入目录并执行命令,退出目录并继续下一个目录。一切似乎都运行良好,但是代码卡在最后一个目录循环 4 次。
for f in /completepath/*
do
[ -d $f ] && cd "$f" && echo Entering into $f
for y in `ls *.fastq.gz | sed 's/_L00[1234]_R1_001.fastq.gz//g' | sort -u`
do
echo ${y}
done
done
示例输出-
Entering into /completepath/m_i_cast_avpv_1
iavpvcast1_S6
Entering into /completepath/m_i_cast_avpv_2
iavpvcast2_S6
Entering into /completepath/m_i_int_avpv_1
iavpvint1_S5
Entering into /completepath/m_i_int_avpv_2
iavpvint2_S5
Entering into /completepath/m_p_cast_avpv_1
pavpvcast1_S8
Entering into /completepathd/m_p_int_avpv_1
pavpvint1_S7
Entering into /completepath/m_p_int_avpv_2
pavpvint2_S7
pavpvint2_S7
pavpvint2_S7
pavpvint2_S7
关于如何正确退出内循环的任何建议?
【问题讨论】:
-
试过检查
ls *.fastq.gz | sed 's/_L00[1234]_R1_001.fastq.gz//g' | sort -u真正输出的内容? -
将
find /completepath -ls的输出添加到您的问题中。