
下線で区切られた情報を含む複数のファイルがあるとします。
ニックネーム_ユーザー名_実名_日付_ファイル名.txt
各ユーザー名のディレクトリを作成し、ファイル名を変更してエイリアス_ユーザー名_日付_を削除し、ファイル(現在の名前はname.txt)をユーザー名ディレクトリに移動したいと思います。
for f in *txt
sed -F_'{$nick $user $realname $date $filename} $f
$(mkdir -p $user)
$(rename 's/???/$filename/g' $fullFileName)
$(mv $fullFileName $user)
答え1
私が正しく理解したなら、これは私の試みです。
for i in *.txt; do
IFS='_' read -r -a array <<< "$i"
mkdir -p "${array[1]}" && mv "$i" "${array[1]}"/"${array[4]}"
done
_
区切り記号で配列を作成する
IFS='_' read -r -a array <<< "$i"
ユーザー名でディレクトリを作成し、"${array[1]}"
ファイル名を"${array[4]}"
そのディレクトリに移動します。
mkdir -p "${array[1]}" && mv "$i" "${array[1]}"/"${array[4]}"
注意して使用してください