答え1
Fishはbashと互換性がありませんが、独自のスクリプト言語を使用しています。
この場合の唯一の違いは
- 逆引用符( `` ``)はサポートされていません。代わりに括弧を使用してください。
- forループはdo / doneを使用しませんが、「end」で終わります。
for acc in (cat uniprot_ids.txt); curl -s "https://www.uniprot.org/uniprot/$acc.fasta" ; end > uniprot_seqs.fasta
また、コマンドの置き換えは改行/空白/タブではなく改行でのみ分割されますが、とにかく行項目があるはずです。それ以外の場合は使用する必要がありますstring split
。
答え2
私が本当にやりたいことの前にbashコマンドを使うとこれが可能になります。
bash -c 'for acc in `cat meltome_protein_ids.txt` ; do curl -s "https://www.uniprot.org/uniprot/$acc.fasta"; done > uniprot_seqs.fasta'