이야기가 포함된 파일이 있습니다. 각 장("chapter"라는 단어로 시작하는 장)이 서로 다른 디렉토리에 있도록 파일을 분할해야 합니다.
CHAPTER 개수 - "CHAPTER"라는 단어 뒤에 오는 모든 항목입니다(이와 같이). 따라서 단어가 나타날 때마다 다음 "장"까지 새 디렉토리로 이동해야 합니다. 디렉터리를 만들어야 하는데 디렉터리가 존재하지 않습니다.
예는 다음과 같습니다.
CHAPTER XII. Alice’s Evidence
‘Here!’ cried Alice, quite forgetting in the flurry of the moment how
great emphasis, looking hard at Alice as he said do.
CHAPTER VI. Pig and Pepper
CHAPTER VII. A Mad Tea-Party
CHAPTER VIII. The Queen’s Croquet-Ground
CHAPTER IX. The Mock Turtle’s Story
텍스트에 "CHAPTER"라는 단어가 표시되는 다른 방법은 없습니다.
답변1
이 솔루션은 다음을 가정합니다.
CHAPTER
항상 줄의 첫 번째 단어입니다.- 그 뒤에는 항상 공백이 오고 로마 숫자(하나 이상의 대문자 I, V, X, L, C, D 또는 M이 오고
.
.
그런 다음 두 단계를 진행합니다.
각 장을 ... ( 입력 파일) 이라는 이름의 자체 파일로 분할합니다
CHAPTER_I.txt
.CHAPTER_II.txt
CHAPTER_N.txt
file
awk '/^CHAPTER [IVXLCDM]+/{name=$1"_"$2"txt"} {print > name}' file
다음 파일을 자체 디렉터리로 이동합니다.
for file in CHAPTER_[IVXLCDM]*.txt; do mkdir -p "${file//.txt}" && mv "$file" "${file//.txt}" done