패턴을 기준으로 파일 분할

패턴을 기준으로 파일 분할

아래와 같은 파일이 있습니다.

***ABC***
Line1*
L*ine2*
***DEF***
Line3*
Lin*e4*

다음 데이터를 ABC사용하여 두 개의 파일을 만들어야 합니다 .DEF

ABC.dat:

Line1*
L*ine2*

DEF.dat:

Line3*
Lin*e4*

작은 쉘 스크립트를 사용하여 파일을 생성할 수도 있습니다.

답변1

$ awk '/^\*\*\*/{gsub(/\*/,""); fname=$0".dat"; next} {print > fname}' ip.txt 
$ cat ABC.dat 
Line1*
L*ine2*
$ cat DEF.dat 
Line3*
Lin*e4*
  • /^\*\*\*/다음으로 시작하는 줄과 일치합니다.***
    • gsub(/\*/,"")*해당 줄을 모두 삭제하세요.
    • fname=$0".dat"추가된 나머지 문자를 변수 .dat에 할당fname
    • next다음 줄로 이동
  • print > fname현재 줄 내용을 저장된 파일 이름으로 인쇄합니다.fname

관련 정보