20,000줄이 포함된 log.txt 파일이 있습니다. 각 선에는 그룹으로 구분된 숫자와 xyz 평면 좌표가 있습니다. 컬렉션은 log.txt에서 ABC_1, ABC_2와 같은 이름으로 식별할 수 있습니다.
이 log.txt 파일의 모든 세트 데이터를 세트의 모든 데이터(예: ABC_1)를 포함해야 하는 별도의 텍스트 파일로 분리하고 싶습니다.
내 log.txt는 아래와 같습니다.
ABC_1:
1, (xyz coordinates)
2, (xyz coordinates)
3, (xyz coordinates)
.... Continue
ABC_2:
101, (xyz coordinates)
102, (xyz coordinates)
103, (xyz coordinates)
.... Continue
ABC_3:
201, (xyz coordinates)
202, (xyz coordinates)
203, (xyz coordinates)
.... Continue
ABC_99:
9991, (xyz coordinates)
9992, (xyz coordinates)
9993, (xyz coordinates)
.... Continue
ABC_1.TXT
단일 log.txt 파일에서 99개의 개별 텍스트 파일을 제공할 수 있고 이름을 set name , ABC_2.TXT
... to ABC_99.TXT
from log.txt 로 지정하는 스크립트를 만들고 싶습니다 .
답변1
csplit을 사용하여
csplit -s -b %d.txt -f ABC_ Log.txt /ABC_/ {*}
답변2
Awk
해결책:
awk '/^ABC_/{
if (fn) close(fn); sub(":", "", $1);
fn = $1".txt"; next
}
{ print > fn }' Log.txt