# dir/b | utf | awk -f C:\WORK\UTIL\AWK\make_folder.awk -v HEAD=%1 | utf -kr > r.bat
# r.bat
BEGIN {
if (HEAD == "") {
HEAD = "GBA_"
}
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for (i = 1; i <= length(alphabet); i++) {
first = substr(alphabet, i, 1)
folder[first] = 0
}
}
{
if ($0 ~ /\.awk/) {
print "REM SKIP AWK FILE: " $0
next
}
if ($0 ~ /r\.bat/) {
print "REM SKIP TEMP BAT FILE: " $0
next
}
# 1. 파일명 전체를 변수에 저장
file_name = $0;
# 2. 파일명의 첫 글자를 추출하고 대문자로 변환
# Windows 파일 시스템은 대소문자를 구분하지 않지만, 폴더명을 일관되게 대문자로 만듭니다.
first_char = toupper(substr(file_name, 1, 1));
# 3. 첫 글자가 영문 대문자(A-Z)인지 확인
if (first_char ~ /^[A-Z]$/) {
if (folder[first_char] == 0) {
# 4. 대상 폴더 생성 명령 실행 (move 명령어 실행 전에 폴더가 없으면 오류 발생)
print "mkdir " HEAD first_char;
}
folder[first_char]++
# 5. 파일 이동 명령 실행
# 파일명에 공백이 있을 수 있으므로 큰따옴표(\")로 감싸줍니다.
# Windows의 move 명령어 구문을 사용합니다.
print "move \"" file_name "\" " HEAD first_char "\\";
} else {
# 6. A-Z로 시작하지 않는 파일 처리
}
}
END {
for (i = 1; i <= length(alphabet); i++) {
first = substr(alphabet, i, 1)
if (folder[first] > 0) {
print "REM " HEAD first " : "folder[first]
}
}
}