0
bashシェルでは、一連の名前を出力する変数があります。今では拡張機能を追加したいと思います。他のプログラムに変数を渡す
Meoh_R1.fastq
Meoh_R2.fastq
R3G_R1.fastq
R3G_R2.fastq
私は変数にMeohとR3Gを格納しています。 bashで、私は何の問題もなく、スクリプトを以下のコマンドを実行します。
filelist=$(ls ./raw_reads | grep ^[^d]| rev | cut -c 10- | rev | uniq)
mkdir -p ${i%}_fastqc
fastqc -o ./${filelist%}_fastqc -f fastq ./rnaseq/${filelist%}_R1.fastq ./rnaseq/${filelist%}_R2.fastq
コードの上に上記の作業のコードのような個々のフォルダを作成しません:
# Stores common names in variable `i` (meoh and r3g)
for i in $(ls ./raw_reads | grep ^[^d]| rev | cut -c 10- | rev | uniq)
do
# Make direcotry for fastqc
mkdir -p ${i%}_fastqc
# Run fastqc
fastqc -o ./${i%}_fastqc -f fastq ./rnaseq/${i%}_R1.fastq ./rnaseq/${i%}_R2.fastq
done
を今、私は働いていない次のコードを実行します。
なぜ '$ {i%}'の代わりに '$ {i%}'と書いていますか? '%'修飾子は、後に何も置かないと何もしません。 – Barmar
ファイルリスト変数全体を、そのような1つのコマンドラインに入れることはできません。それは自動的に分割されず、各要素のコマンドを繰り返します。あなたはあなたのようにループを使用する必要があります。 – Barmar