csv/txt 파일에서 폴더 및 하위 폴더 만들기

csv/txt 파일에서 폴더 및 하위 폴더 만들기

다음 데이터가 포함된 csv 또는 txt 파일로 변환한 Excel 파일이 있습니다.

ALFA ROMEO > 147 > Scheinwerferblenden
ALFA ROMEO > 156 > Scheinwerferblenden
ALFA ROMEO > 156 > Kühlergrill
AUDI > 80 B3 > Heckspoiler
.
.

등.

다음 구문을 사용하여 이 데이터를 기반으로 폴더와 하위 폴더를 만들어야 합니다.

├───ALFA ROMEO
│            ├───147
│            │     └───Scheinwerferblenden
│            └───156
│                  ├───Scheinwerferblenden
│                  └───Kühlergrill        
└───AUDI
       └───80 B3
               └───Heckspoiler

mkdir -p bash 스크립팅을 시도했지만 성공하지 못했습니다.

답변1

귀하가 제공한 입력을 바탕으로 다음 명령을 사용하여 이 작업을 수행할 수 있습니다.

while read -r dir; do mkdir -p ./"$dir"; done< <(sed 's@ > @/@g' input)

현재 디렉터리가 아닌 경우 ./디렉터리 트리를 시작하려는 디렉터리 경로를 대체할 수 있습니다.

sed이는 입력 라인을 다음에서 변환하는 데 사용됩니다 .

ALFA ROMEO > 147 > Scheinwerferblenden

도착하다:

ALFA ROMEO/147/Scheinwerferblenden

mkdir -p그런 다음 디렉터리 트리를 생성하는 while 루프 에 출력을 제공합니다 .

$ cat input
ALFA ROMEO > 147 > Scheinwerferblenden
ALFA ROMEO > 156 > Scheinwerferblenden
ALFA ROMEO > 156 > Kühlergrill
AUDI > 80 B3 > Heckspoiler
$ while read -r dir; do mkdir -p ./"$dir"; done< <(sed 's@ > @/@g' input)
$ tree
.
├── ALFA\ ROMEO
│   ├── 147
│   │   └── Scheinwerferblenden
│   └── 156
│       ├── K\303\274hlergrill
│       └── Scheinwerferblenden
├── AUDI
│   └── 80\ B3
│       └── Heckspoiler
└── input

9 directories, 1 file

답변2

귀하의 입력에 따라 이것을 시도해 보십시오(사용Bash 매개변수 확장):

while IFS=">" read -r c1 c2 c3; do
    c2=${c2% }
    mkdir -p "${c1% }/${c2# }/${c3# }"
done < file-or-input

산출:

$ tree AUDI ALFA\ ROMEO/
AUDI
└── 80 B3
    └── Heckspoiler
ALFA ROMEO/
├── 147
│   └── Scheinwerferblenden
└── 156
    ├── Kühlergrill
    └── Scheinwerferblenden

7 directories, 0 files

관련 정보