재귀적 파일 생성 및 중첩된 하위 디렉터리와 관련된 문제를 해결하려고 합니다. 다음과 같은 중첩된 디렉터리 구조를 만드는 명령을 작성했습니다.
mkdir -p {2019,2020}/{01..03}
├── 2019
│ ├── 01
│ ├── 02
│ ├── 03
├── 2020
│ ├── 01
│ ├── 02
│ ├── 03
상위 디렉토리는 연도를 나타내고 하위 디렉토리는 번호가 지정된 월에 해당합니다. 1월은 01, 2월은 02 등입니다.
cal
나는 내장 함수와 함께 이 디렉토리 구조를 사용하여 각 하위 디렉토리 이름에 해당하는 달력 연도 및 월의 인쇄 파일을 반복적으로 생성하는 방법을 알아내려고 노력 중입니다 . 예상되는 출력은 다음과 같습니다.
├── 2019
│ ├── 01
| | ├── 01-2019-cal.dat
│ ├── 02
| | ├── 02-2019-cal.dat
│ ├── 03
| | ├── 03-2019-cal.dat
├── 2020
│ ├── 01
| | ├── 01-2020-cal.dat
│ ├── 02
| | ├── 02-2020-cal.dat
│ ├── 03
| | ├── 03-2020-cal.dat
예를 들어, 특정 연도 및 월에 이 작업을 한 번만 수행하는 명령은 입니다 cal 03 2020 > 03-2020-cal.dat
. 그러나 디렉토리 구조 자체를 에 전달하고 cal
올바른 위치에 올바른 출력을 생성하여 이 문제를 해결하려면 어떻게 해야 합니까? 이것이 내 명령줄 기술의 절대적인 한계입니다... 이 명령을 사용하여 유사한 요소에 대한 질문에 대한 몇 가지 답변을 여기에서 보았지만 find
내가 읽고 있는 내용을 실제로 이해하지 못합니다.
도움을 주셔서 감사합니다.
답변1
내가 bash를 처음 접하지 않았다면 다음을 시도해 볼 수 있습니다.
for d in */*; do
cal "${d#*/}" "${d%/*}" > "${d%/*}/${d#*/}/${d#*/}-${d%/*}-cal.dat"
done
연도 폴더가 포함된 디렉터리에 있다고 가정합니다.
결과 :
├── 2019
│ ├── 01
│ │ └── 01-2019-cal.dat
│ ├── 02
│ │ └── 02-2019-cal.dat
│ └── 03
│ └── 03-2019-cal.dat
├── 2020
│ ├── 01
│ │ └── 01-2020-cal.dat
│ ├── 02
│ │ └── 02-2020-cal.dat
│ └── 03
│ └── 03-2020-cal.dat
cat
파일 중 하나 :
cat 01-2019-cal.dat
출력(스페인어 버전은 죄송합니다):
Enero 2019
do lu ma mi ju vi sá
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
비결은 다음과 같습니다.매개변수 확장.