次のパラメータシェル拡張を実行しました。
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
先行連続A
sを次から変換します。第二ファイルの1行(元のファイルを結果に置き換えます):
$ sed '2s/^A*//' data.fa >data.out && mv data.out data.fa
この例では、sed
コマンドは特に置換コマンド()をライン2に適用します。行の先頭のsを何も変更しませんs
。A
このパターンは、^A*
「*
行()を開始する0個以上の単一文字()と一致する」を意味します。A
^
私が使用しない理由sed -i
(「所定の位置で編集」)は、このフラグが-i
実装間で移植が非常に不可能であるためです。sed