BASH: 이름에 포함된 정보를 기반으로 파일 이름 바꾸기 및 구성

BASH: 이름에 포함된 정보를 기반으로 파일 이름 바꾸기 및 구성

밑줄로 구분된 정보가 포함된 파일이 여러 개 있다고 가정해 보겠습니다.

닉네임_사용자명_실명_날짜_파일명.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]}"

주의해서 사용하세요

관련 정보