ファイルの行にファイル名を追加します。

ファイルの行にファイル名を追加します。

01.fasta、02.fastaなど、さまざまなサンプルのfastaファイルがあります。

これには、すべて次のパターンのOTUのリストが含まれています。

>OTU1
CCTACGGGCGGCTGCAGT

>OTU2
CCTACGGGTGGCTGCAG

以下>OTU*を受け取るために、fastaファイルの各行にファイル名(例:01、02など)を追加したいと思います>OTU1_01>OTU2_01

フォルダ内のすべてのファイルに対して自動的にこれを実行するスクリプトを書くのに役立ちますか?

ベストアンサー1

すべてのファイルの変更を開始する前に、ファイルをバックアップしたことを確認してください。

次のコマンドを実行できます。

for i in *.fasta; do nr="${i%.fasta}"; sed -i 's/^>OTU\(.*\)$/>OTU\1_'$nr'/' "$i"; done

sed-i(所定の位置で編集)をサポートするバージョンがある場合。

このnr="${i%.fasta}"部分はファイル名から番号を取得します。\(.*\)次の番号を一致させて>OTU再挿入してください。\1

おすすめ記事