![txtファイルを使用してフォルダ名を変更する[閉じる]](https://linux33.com/image/7954/txt%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E5%90%8D%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
端末で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
実行されます。