端末でbashを使用してフォルダの名前を変更しようとしています。
1 2 3 4 5
a.txtファイルに基づいて名前を変更したいと思います。
a 2
c 3
d 5
e 1
b 4
.txt ファイルの順序は完全にランダムです。フォルダ名を次のように変更する方法を見つけたいです。
1 > e
2 > a
3 > c
4 > b
5 > d
これを行う方法はありますか?私はOSXを使用しています。
答え1
上記の単純なケースでは、各行にターゲットディレクトリと新しい名前という2つの「単語」があり、両方にスペースを含めることはできず、単に次のことができます。
while read -r from to; do mv "$from" "$to"; done < file
file
これは、最初の文字列が割り当てられた各行(最初のスペースまで)$from
と残りの行を読み取り、各行$to
でmv
実行されます。