我有很多目录,它们的名称为:
Cl_GG_Omega_m_step_1e-01_der_15
Cl_GG_Omega_m_step_2e-01_der_15
Cl_GG_Omega_m_step_2e-01_der_15
Cl_GG_Omega_m_step_1e-08_der_15
Cl_LL_Omega_m_step_1e-08_der_15
Cl_GL_Omega_m_step_1e-08_der_15
Cl_GG_Omega_m_step_1.1229481712787273e-08_der_15
Cl_LL_Omega_m_step_1.1229481712787273e-08_der_15
Cl_GL_Omega_m_step_1.1229481712787273e-08_der_15
Cl_GG_Omega_m_step_1.2610125953782405e-08_der_15
Cl_LL_Omega_m_step_1.2610125953782405e-08_der_15
我想获取目录名称(完整),该目录名称的值出现在Òmega_m_step
和_der_15
之间,并且低于临界值(例如,下面的cutoff=0.01
:]
为此,我尝试做:
for i in $(ls --color=never -d Cl_*Omega_m_step_*); do
for j in $(echo $i); do
sed 's/.*_step_\([0-9].[0-9]*\)_der_15/\1/g' "$j" | awk -v cutoff=0.01 '{if ($1 < cutoff) print "$j"}';
done;
done
这里的困难是我想获取整个目录名称,这就是为什么我使用了双重for
循环:问题是我不知道嵌套循环$j
目录名称(即将出现从for j in $(echo $i)
,特别是从awk -v cutoff=0.01 '{if ($1 < cutoff) print "$j"}'
命令打印?
如果有人有解决方案,那将是很好。
condition
condition { print }
{ if ( condition ) print }
对于此示例:
awk -F_ '$6<0.01'
awk -F_ '$6<0.01 { print }'
awk -F_ '{ if ($6<0.01) print }'