다음 예제의 내용이 포함된 텍스트 파일이 있는데 이 파일을 여러 파일로 분할하고 싶습니다.
[TXT] /path/to/[TXT]
[BAT] /path/to/[BAT]
[TXT] /path/to/blah/[TXT]
[BAT] /path/to/blah/[BAT]
csplit
그래서 나는 내가 달성하고 싶은 것을 적어도 부분적으로 달성하는 데 사용할 수 있다는 것을 발견했습니다 .
csplit -f 'paths-' -b '%04d.txt' 'path/to/filelist.txt' '/^\[(.*)]\t/' '{*}'
그러나 이것은 paths-0000.txt
.
paths-txt.txt
와 같은 것들이 더 많아졌으면 좋겠습니다 paths-bat.txt
.
어쨌든 정규식을 접두사 일치와 일치시킬 수 있습니까?
-f 'paths-$1.txt'
나는 과 같은 것을 시도했습니다 -f 'paths-\1.txt'
.
그러나 이들 중 어느 것도 내가 원하는 대로 이루어지지 않았습니다.
답변1
csplit을 사용하는 것은 작업에 적합한 도구가 아닙니다.
나는 내가 원하는 것을 달성하기 위해 awk를 사용합니다.
awk -F"\t" '{print > $1".txt"}' /path/to/filelist.txt
제한하고 싶다면 분할 후 파일의 특정 부분만 보관할 수 있지만 모든 것이 필요하거나 필요합니다.
awk -F"\t" '{print $2 > $1".txt"}' /path/to/filelist.txt