我的文件結構的一個簡單的例子是這樣的:慶典 - 在子目錄中,重命名FASTA頭和文件名 - 添加前綴
/Assemblies/A_velvet/contigs.fasta
/Assemblies/A_velvet/info.log
/Assemblies/BB_velvet/contigs.fasta
/Assemblies/BB_velvet/info.log
我想編寫一個腳本,我可以通過大會目錄 - 然後它會:
- 遍歷每個子目錄(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
你會得到什麼輸出?你怎麼知道它不工作? – 2015-03-02 22:00:11
@DaleWilson - 輸出只是一個錯誤,第5行:'*':不是有效的標識符。 – tdot 2015-03-02 22:17:58