我想在这里写一个嵌套的bash循环。在我的工作目录中的每个目录中,我都有文本文件,如果我读取第一个文本文件,我想在每个目录中创建一个名为`nucleotide frequency'的新目录。这是我尝试过的,但它不起作用。
for d in */ ; do
echo "My Directories: " ${d}
for f in $d/*.txt; do
echo "My File: " ${f}
if [f = 1]
then
mkdir $d/nucleotide_frequency
fi
done
done
你很亲密缺少的是您检查文本文件。
这个:
if [f = 1]
正在寻找功能或程序f
是否等于数字1。
bash内置的if
函数有一个标志-s
来检查文件是否存在并且大小大于零。
for d in */
do
echo "My Directories: ${d}"
for f in "${d}"/*.txt
do
echo "My File: ${f}"
# Let's make sure that the file exists and is not empty
if [[ -s "${f}" ]]
then
mkdir "${d}"/nucleotide_frequency 2>/dev/null
break
fi
done
done