別の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