【发布时间】:2015-05-03 10:02:47
【问题描述】:
我的文件结构的简化示例如下:
/Assemblies/A_velvet/contigs.fasta
/Assemblies/A_velvet/info.log
/Assemblies/BB_velvet/contigs.fasta
/Assemblies/BB_velvet/info.log
我正在尝试编写一个可以传递 Assemblies 目录的脚本 - 然后它将:
- 遍历每个子目录 (A_velvet, BB_velvet) - 将菌株名称 (A, BB) 添加为所有文件的前缀 (即 A_contigs.fasta, A_file.log)。
- 为 contigs.fasta 文件中的 fasta 标头添加相同的前缀。 也许使用 sed 命令替换 ('s/>NODE/>${name}/g')?
我发现了很多密切相关的问题,但似乎无法让它们发挥作用。很感谢任何形式的帮助!到目前为止,这是我的代码:
#!/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
【问题讨论】:
-
你得到什么输出?你怎么知道它不起作用?
-
@DaleWilson - 输出只是一个错误,第 5 行:`*': not a valid identifier.
标签: bash recursion sed rename bioinformatics