밑줄로 구분된 정보가 포함된 파일이 여러 개 있다고 가정해 보겠습니다.
닉네임_사용자명_실명_날짜_파일명.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]}"
주의해서 사용하세요