텍스트 파일을 줄별로 분할하고 문자열 내용에 따라 이름을 바꿉니다.

텍스트 파일을 줄별로 분할하고 문자열 내용에 따라 이름을 바꿉니다.

자체 디렉터리에 다음 콘텐츠가 포함된 WINDOWS 텍스트 파일이 있습니다. 이름은 "test.txt"입니다.

샘플 소스 파일 - test.txt:

hxxp://url.xxx/XX/file 1.txt
hxxp://url.xxx/XX/file 2.avi
hxxp://url.xxx/XX/file 3.mpg

첫 번째 파일의 내용은 다음과 같습니다.

hxxp://url.xxx/file 1.txt

파일 이름은 다음과 같습니다.

file 1.txt

내 목표는 각 URL을 포함하고 URL의 "파일" 부분에 따라 이름이 지정된 별도의 텍스트 파일을 만드는 것입니다. 따라서 첫 번째는 "File1.txt.txt"이고 그 다음은 "File2.avi.avi" 등입니다. 실제 파일의 이름을 지정하는 것 외에도 Split은 이 작업을 완벽하게 수행합니다.

답변1

이 작업은 에서 쉽게 수행됩니다 awk. 필드 구분 기호를 으로 설정한 /다음 마지막 필드 이름이 있는 파일에 각 줄을 인쇄하면 됩니다. 의 필드 개수가 변수 awk에 저장되므로 를 사용하여 마지막 필드를 가져올 수 있습니다 . 그런 다음 모든 항목에 txt 확장자를 지정하려면 다음이 필요합니다.NF$NF

awk -F'/' '{print > $NF".txt"}' file 

(귀하의 의견에 따르면) 입력 파일에 Windows 줄 끝이 있는 경우 첫 번째 줄 끝을 제거해야 합니다 \r.

sed 's/\r//' file | awk -F'/' '{print > $NF".txt"}' 

관련 정보