동일한 패턴 발생 사이의 Grep 라인

동일한 패턴 발생 사이의 Grep 라인

동일한 패턴 사이의 줄을 파악한 다음 일치하는 각 줄을 다른 파일에 저장하고 싶습니다. 예를 들면 다음과 같습니다.

name
aaa
bbb
bbb
ccc
name
aaa1
bbb1
ccc1
name
...

가지고 싶다

name
aaa
bbb
bbb
ccc

파일 1에서

name
aaa1
bbb1
ccc1

파일 2 등에서.

나는 다음과 같이 awk에서 플래그 반전을 사용해 보았습니다.

awk '/^name/ {flag=!flag; next} flag {print}'

그러나 나는 내가 원하는 것을 얻지 못했습니다.

의견 있으십니까?

답변1

어때요?

awk '/name/{n+=1}{print > "file_"n".txt"}'

file_1.txt이것은 , file_2.txt... 등을 생성합니다 .

답변2

다음과 같이 "csplit"을 사용하여 이를 달성할 수도 있습니다.

csplit yourfile -s -n 1 -f file_ '%name%' '/name/' '{*}'

그러면 "file_1", "file_2" 등의 파일이 생성됩니다.

관련 정보