私はすべてのファイル(ESファイル:geneX.csv)のためにという私はこのgene.shテストのbiginigで変数文字列をファイルtxtに渡す方法は?
のようなプログラムの一般的な問題を持っている
持っている:ジェネックス/ジェネックス遺伝子の名前(例でディレクトリを作成します.csv)次にこのプログラムはgene.sh内の他のプログラムをコンパイルしますが、このprogrmはvariebleを必要とし、どうやってそれを行うのか分かりません。
これはこれはプログラムgetChromosomichPositions.shあるgene.sh
#!/bin/bash
# Create a dictory for each file *.xls and *.csv
for fname in *.xlsx *csv
do
dname=${fname%.*}
[[ -d $dname ]] || mkdir "$dname"
mv "$fname" "$dname"
done
# For each gene go inside the directory and compile the programs getChromosomicPositions.sh to have the positions, and getHapolotipeStings.sh to have the variants
for geni in */; do
cd $geni
z=$(tail -n 1 *.csv | tr ';' "\n" | wc -l)
cd ..
cp getChromosomicPositions.sh $geni --->
cp getHaplotypeStrings.sh $geni
cd $geni
export z
./getChromosomicPositions.sh *.csv
export z
./getHaplotypeStrings.sh *.csv
cd ..
done
プログラムです:
rm chrPosRs.txt
grep '^Haplotype\ ID' $1 | cut -d ";" -f 4-61 | tr ";" "\n" | awk '{print "select chrom,chromStart,chromEnd,name from snp147 where name=\""$1"\";"}' > listOfQuery.txt
while read l; do
echo $l > query.txt
mysql -h genome-mysql.cse.ucsc.edu -u genome -A -D hg38 --skip-column-names <query.txt> queryResult.txt
if [[ "$(cat queryResult.txt)" == "" ]];
then
cat query.txt |
while read line; do
echo $line | awk '$6 ~/rs/ {print $6}' > temp.txt;
if [[ "$(cat temp.txt)" != "" ]];
then cat temp.txt | awk -F'name="' '{print $2}' | sed -e 's/";//g' > temp.txt;
./getHGSVposHG19.sh temp.txt ---> Hear the problem--->
else
echo $line | awk '{num=sub(/.*:g\./,"");num+=sub(/\".*/,"");if(num==2){print};num=""}' > temp2.txt
fi
done
cat query.txt >> varianti.txt
echo "Missing Data" >> chrPosRs.txt
else
cat queryResult.txt >> chrPosRs.txt
fi
done < listOfQuery.txt
rm query*
は、問題を聞く:
私は、ファイルの一時に入力する必要があります。 txtを読み込み、ファイルの先頭に自動的に入れる。gene.shの変数$ geni
どうすればいいですか?
があります: 35941G>私は変数$ GENIて文句を言わない (例:GENI = "CBA1"): CBA1:でファイルTEMP.TXTを変更35941G> –
コメントする代わりにあなたの質問を編集できませんか?そしてあなたがそれをしている間に、書式設定、特に '!#/ bin/bash'行を修正することができます。 \ [編集]あなたが書いている間に行を修正しました。 –