私は以下のようにうまくいくはずのスクリプトを書こうとしていますが、何とか構文を書く方法を得ることができません。以下のパターンの正規表現とのマッチング方法は?
私はS_12_O_319_K4me1
のようなフォルダを持っています。
各フォルダ内のコンテンツはS_12_O_319_K4me1_S12816.sorted.bam
ですが、
私は自分のスクリプトがループ内の同じ名前のフォルダに入り、*.bam
ファイルを識別して操作を実行するスクリプトを作成したいと思いましたが、正規表現を入れることができません。これは私が試したものです:
#!/bin/bash
#$ -S /bin/bash
spp_run=/path/phantompeakqualtools/run_spp.R
bam_loc=/path/ChIP-Seq/output
samples="S_12_O_319_K27me3
S_12_O_319_K4me1
S_12_O_319_K4me3
S_12_O_319_K27ac"
for s in $samples; do
echo "Running SPP on $s ..."
Rscript $spp_run -c=$bam_loc/$s/${s}_S[[0-9]+\.sorted.bam -savp -out=$bam_loc/$s/${s}".run_spp.out"
done
私は上記の正規表現で数字を認識することができません。
どこが間違っていますか?
編集: 私は、それが動作しません、まだ下のRscriptにパースに問題があることを試してみましたが、なぜこれが
#!/bin/bash
#$ -S /bin/bash
spp_run=/path/tools/phantompeakqualtools/run_spp.R
bam_loc=/path/ChIP-Seq/output
samples="S_12_O_319_K27me3
S_12_O_319_K4me1
S_12_O_319_K4me3"
for s in $samples; do
echo "Running SPP on $s ..."
echo $bam_loc/$s/${s}_S*.sorted.bam
inbam=$bam_loc/$s/${s}_S*.sorted.bam
echo $inbam
Rscript $spp_run -c=$inbam -savp -out=$bam_loc/$s/${s}".run_spp.out"
done
echo "done"
エラー
Error in parse.arguments(args) :
ChIP File:/path/ChIP-Seq/output/S_12_O_319_K27me3/S_12_O_319_K27me3_S*.sorted.bam does not exist
Execution halted
がファイルを認識しない問題になります$inbam
値は/path/ChIP-Seq/output/S_12_O_319_K27me3/S_12_O_319_K27me3_S12815.sorted.bam
コマンドのその場所で正規表現を解釈していると思われることはありますか? (また、あなたの正規表現の試行で '' 'を閉じることができないようです。) –
' $ {s} _S * sorted.bam'ファイルをグロブリングしようとしていますか? –
Rscriptは '$ s'ディレクトリ内のbamファイルをピックアップしようとしていますが、' S_12_O_319_K4me1_S12816.sorted.bam'を認識すると、regexはフォルダ内の各bamファイルごとに異なる英数字 'S12816'を認識します –