이것은 정말 간단할 수도 있지만, 나는 하루의 대부분을 이 일을 하면서 보냅니다.
질문: 응용프로그램에 여러 개의 폴더가 있는데 이를 하위 폴더에 넣어야 합니다. 현재 이 작업을 수동으로 수행하고 있으며 상황이 어떻게 진행되고 있는지에 대한 좋은 시각적 표시기이기 때문에 구분 기호를 사용하겠습니다.
예:
디렉터리 이름:category---subcat---page
원하는 결과:
- 범주/
- /자자/
- /페이지/
- /자자/
계층 구조의 마지막 디렉터리는 해당 폴더의 내용이 있는 디렉터리입니다. 따라서 단지 구분 기호일 경우에는 ---
한 디렉터리 깊이로만 이동합니다. 그렇다면 ---...---
두 수준 깊이로 진행됩니다.
편집하다
지금까지 나의 시도는 미약합니다.
#!/bin/bash
IFS='---'
line="category---subcat---page"
dir=($line)
mkdir ${dir[0]}
답변1
편집: 원래 답변이 적용되지 않았기 때문에 약간 다른 답변을 찾기 위해 다시 작성했습니다.
Bash는 변수 값을 확장할 때 문자열 대체를 수행할 수 있습니다. 그것을 사용해 보자:
line='category---subcat---page'
mkdir -p "${line//---//}"
이 표현식은 문자열의 모든 인스턴스를 찾아 //---//
변수가 확장될 때 ---
이를 문자열로 바꿉니다 . (표현식은 첫 번째 인스턴스만 대체합니다)/
$line
/---//
이는 디렉토리 트리로 생성될 mkdir -p
디렉토리 경로 string 을 제공합니다.category/subcat/page
category/
subcat/
page/