別のtxtファイルの名前に基づいて.gzファイルの名前を変更します。

別のtxtファイルの名前に基づいて.gzファイルの名前を変更します。

別のtxtファイルの名前に基づいて.gzファイルの名前を変更したいと思います。次の名前の.gzファイルを含むマップがあります。

trooper10.gz
trooper11.gz 
trooper12.gz
etc.

最初の列には目的の名前があり、他の列には.gz名(タブで区切られている)を持つ別々のtxtファイルがあります。

B25    trooper10
C76    trooper11
A87_2    trooper12

したがって、ファイル名を次のように変更する必要があります。

B25.gz
C76.gz
A87_2.gz

頑張った

for i in *.gz; do
line=$(grep -x -m 1 -- "${i}" /path_to_txtfile/list_names.txt)

しかし、txtファイルでその列を特定する方法がわかりません。 gzファイルが多すぎて回避策があるかどうかを見たいです。

ベストアンサー1

はい、ファイルシステムからgzファイルをインポートするのではなく、ファイルを読み込むことから始めます。

while IFS=$'\t' read -r newName oldName; do
    mv -- "$oldName".gz "$newName.gz"
done < names_file

おすすめ記事