私はbashシェルを使用しており、人間参照ゲノムGRCh38で作業しています。私は、ディレクトリ内のファイルのリストを持っています。各ファイルは、各染色体ごとに1つのファイルです。今度はファイル名のリストを検索する必要があります。簡単ですが、ファイル名には特殊文字が付いています。例:bash - ファイル名に特殊文字を扱う
ls -1 ../GRCh38_chromosomes/
は、ディレクトリの内容を出力します
…
HLA-DRB1*13:01:01?HLA00797_13935_bp.fa
HLA-DRB1*13:02:01?HLA00798_13941_bp.fa
HLA-DRB1*14:05:01?HLA00837_13933_bp.fa
HLA-DRB1*14:54:01?HLA02371_13936_bp.fa
HLA-DRB1*15:01:01:01?HLA00865_11080_bp.fa
HLA-DRB1*15:01:01:02?HLA03453_11571_bp.fa
…
イムが困難な特定の文字に置き換えられますように思われるので、(スクリプトをwithingから)特定のファイル名を探し、「?」は、 "\ t"例:
ls -1 ../GRCh38_chromosomes/ | perl -ne ' print $_; '
私は同じ出力を期待するが、代わりに取得する:私は、このようなどの出力すべき
ls -1 ../GRCh38_chromosomes/ | perl -ne ' if ($_ =~ /^\QHLA-DRB1*15:01:01:02?\E/) { print $_; } '
などの検索をしようとすると、
…
HLA-DRB1*13:01:01 HLA00797_13935_bp.fa
HLA-DRB1*13:02:01 HLA00798_13941_bp.fa
HLA-DRB1*14:05:01 HLA00837_13933_bp.fa
HLA-DRB1*14:54:01 HLA02371_13936_bp.fa
HLA-DRB1*15:01:01:01 HLA00865_11080_bp.fa
HLA-DRB1*15:01:01:02 HLA03453_11571_bp.fa
…
これは私に頭痛を引き起こしている。
HLA-DRB1*15:01:01:02?HLA03453_11571_bp.fa
代わりに何も見つけません。私は同じ問題をawkでも試してみましたが、なぜGRCh38の染色体名に特殊文字を入れるのだろうと思っていますか?どのようにこれらの問題の文字に対処するためのアイデア?
per per?私はperl 5.16.3を持っていて、この問題を複製することはできません – SaintHax
私は5.22.1を持っていますが、awkと同じ動作を見つける – nak3c
あなたはawkコードを与えていないので、調べることはありません。 lsの '-1'を取り除く必要はありません。 lsをパイプに送ると、lsは常に1つの列形式になります。結果が得られない唯一の方法は、 'ls'や' ls -1'の代わりに 'ls -l'をタイプすることです。 – SaintHax