シェルパラメータ拡張

シェルパラメータ拡張

次のパラメータシェル拡張を実行しました。

trihead="$(cat ../FASTA_SEC/"$i".fa)"
echo "${trihead#"${trihead%%[!A]*}"}" > ../FASTA_SEC/"$i".fa

fastaファイル(通常のテキスト形式.fa)の2行目で先行Aを切り取りたいです。

入力は次のとおりです。

>B4-0K032_18670_015
AAAAAAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNGNNNTAGATACAAGCGAGCGGC

出力が次のようになります。

>B4-0K032_18670_015
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNGNNNTAGATACAAGCGAGCGGC

しかし、よく説明されたシェルパラメータ拡張のいくつかの側面を知っている人はいますか?

ベストアンサー1

先行連続Asを次から変換します。第二ファイルの1行(元のファイルを結果に置き換えます):

$ sed '2s/^A*//' data.fa >data.out  &&  mv data.out data.fa

この例では、sedコマンドは特に置換コマンド()をライン2に適用します。行の先頭のsを何も変更しませんsA

このパターンは、^A**行()を開始する0個以上の単一文字()と一致する」を意味します。A^

私が使用しない理由sed -i(「所定の位置で編集」)は、このフラグが-i実装間で移植が非常に不可能であるためです。sed

おすすめ記事