シェルスクリプトから.outファイルを生成する方法は?

シェルスクリプトから.outファイルを生成する方法は?

この質問をどのように表現するのかわかりませんが、基本的に私はsamデータを処理するためにシェルスクリプトを使用してきました。これはシェルスクリプトです。

nano picard_SortandIndex_from_sam.sh

for A in *sam; do ls $A; picard SortSam I=$A O=$A".bam" SO=coordinate CREATE_INDEX=TRUE; done 

これは私が実行するコマンドで、処理されたすべてのsamファイルに対して1つの.outファイルのみを取得します。

nohup sh picard_SortandIndex_from_sam.sh > picard_SortandIndex_from_sam5_26_21.out &

処理された各サムファイルのサマリーファイルを生成できるように、 "picard_SortandIndex_from_sam.sh"スクリプトから.outファイルを生成する方法はありますか?そこに> $A".out"を入れようとしましたが、うまくいきません...

とても感謝しています!

ベストアンサー1

私はあなたがこれを探していると思います:

for A in *sam; do 
  ls "$A"
  picard SortSam I="$A" O="$A".bam SO=coordinate CREATE_INDEX=TRUE > "$A".out
done

あるいは、stderrとstdoutを望む可能性が高いので、次のようにします。

for A in *sam; do 
  ls "$A"
  picard SortSam I="$A" O="$A".bam SO=coordinate CREATE_INDEX=TRUE > "$A".out 2>&1
done

これはpicard各samファイルで実行され、コマンド(> "$A".out)の出力を保存します。そして2>&1ファイルにエラー()が生成されました$A.out

最後の注意はetc。というファイルが生成されるので、foo.sam.bam出力名から削除することをお勧めfoo.sam.bam.baiします。.sam

 for A in *sam; do 
  ls "$A"
  fileName=$(basename "$A" .sam)
  picard SortSam I="$A" O="$fileName".bam SO=coordinate CREATE_INDEX=TRUE > "$fileName".out 2>&1
done

代わりfoo.bamに作成されます。foo.samfoo.sam.bam

おすすめ記事