我的文件结构的简化示例是:
/Assemblies/A_velvet/contigs.fasta
/Assemblies/A_velvet/info.log
/Assemblies/BB_velvet/contigs.fasta
/Assemblies/BB_velvet/info.log
我正在尝试编写一个可以传递Assemblies目录的脚本 - 然后它将:
我发现了很多非常密切相关的问题,但似乎无法使它们发挥作用。很感谢任何形式的帮助!到目前为止,这是我的代码:
#!/bin/bash
#Run with: ./test.sh <assembly_directory>
#dir= directory with all assemblies inside it
dir=$1
for subdir in $dir
do
if [ -d "${subdir}" ]; then
name=`basename $subdir|cut -d '_' -f 1`;
echo "${subdir} name ${name}"
for * in $subdir;
`do mv "$file" "$subdir/${name}_$(basename "$file")"; done
fi
done
答案 0 :(得分:0)
循环浏览目录内容的方法无法正常工作。在第一种情况下,循环中唯一的项是$ dir。我不确定你在第二种情况下要做的是什么。尝试这样的事情:
dir=$1
for subdir in `ls $dir`
do
if [ -d "${subdir}" ]; then
name=`basename $subdir|cut -d '_' -f 1`;
echo "${subdir} name ${name}"
for file in `ls $subdir`;
do mv "$file" "$subdir/${name}_$(basename "$file")"; done
fi
done