私のディレクトリには、次の同じサフィックスと一意の英数字プレフィックスを持つ数百のファイルがあります。
ABC01234.sorted_dup.bam
ABC04271.sorted_dup.bam
ABC09287.sorted_dup.bam
次のように、各元のプレフィックスに固有の新しい一意の英数字プレフィックスを含む列を持つファイルがあります。
GBH03987 ABC01234
GBH05430 ABC04271
GBH07651 ABC09287
元のプレフィックスをファイルの正しいプレフィックスに置き換えたいと思います。つまり、ディレクトリ内のファイル名のプレフィックスを列1のプレフィックスに置き換えます。生成されたファイル名には、次のように列1に基づく接頭辞が付きます。
GBH03987.sorted_dup.bam
GBH05430.sorted_dup.bam
GBH07651.sorted_dup.bam
UNIXに初めてアクセスする人にとって最も簡単なソリューションは何ですか? awkまたはsedソリューションが一番良いでしょう、大変感謝します。
答え1
この場合、単純なシェルループで十分です。
while read -r new old; do
[ -f "$old.sorted_dup.bam" ] && echo mv -- "$old.sorted_dup.bam" "$new.sorted_dup.bam"
done < filenames
filenames
マッピングを含むファイルの名前はどこにありますか?テスト後に削除してくださいecho
。