大家好!
我写了一个脚本,在过去的工作,但突然它不工作,我不知道为什么。
下面是我的脚本:
#!/bin/bash
#This script gets damage seq bed files of 4 nucleotides and filters only those with dipyrimidins in 2-3 position.
_pwd=$PWD
#hg-19 ref genome.
genome_path="/hg_19_ref_genome.fa"
#Scans all the damage seq given bed files.
for bedFile in $_pwd/*.bed
do
#Removes duplicates lines.
sort -u -o $bedFile $bedFile
#Sorts the files according to chromosome and coordinates.
sort -k1,1 -k2,2n -o $bedFile $bedFile
name=`basename $bedFile`
#Adjusts the fasta file name.
faName="${name%.bed*}.fa"
bedtools getfasta -s -fi $genome_path -bed $bedFile -name -fo $_pwd/fasta_files/$faName #Gets the sequence itself.
done
#Scans all the obtained fasta files.
for faFile in $_pwd/fasta_files/*.fa
do
name=`basename $faFile`
faOutput="${name}"
bedOutput="${name%.fa*}.bed"
#Filters the files for getting only those which contain dypirimidne in 2-3 columns.
cat $faFile |\
paste - - |\
awk 'toupper(substr($2,2,2)) ~ /^(TT|TC|CT|CC)$/' |\
tr "\t" "\n" |\
tee $_pwd/filtered_fasta/$faOutput |\
awk -F '[>():-]' '/^>/ {printf("%s\t%s\t%s\t%s\t%s\t%s\n",$4,$5,$6,$2,$2,$7);}' > $_pwd/filtered_bed/$bedOutput
done
当我运行它时,我得到这个错误:
line 30: : command not found
其中第30行是这一行:
tee $_pwd/filtered_fasta/$faOutput |\
我不知道为什么会出现这个错误,它以前工作得很好。
我真的希望有人能帮我解决这个问题。
**更新:**我删除了所有的"“,它现在工作正常。
1条答案
按热度按时间aiazj4mn1#
如果我相信你已经正确地粘贴了你的脚本,在第30行的反斜杠
\
后面有一个字符。Bash本身会告诉您未知命令的名称:
在
:
和``之间的是命令名,Bash无法识别,而这个白色。正如注解中所建议的,删除管道符
|
后面的反斜杠\
,并确保管道符是行中的最后一个。这将提高可读性。此外,好的编辑器可以显示白色(example for Sublime Text)。启用它将显示这样的错误。