행 그룹이 변경되면 파일에 행 삽입

행 그룹이 변경되면 파일에 행 삽입

다음과 같은 텍스트 파일이 있다고 가정해 보겠습니다.

group1 hello
group1 there
group1 nice line
group2 here
group2 we
group2 go

내가 하고 싶은 일은 행 그룹이 변경될 때 행을 삽입하는 것입니다. 예를 들면 다음과 같습니다.

group1 hello
group1 there
group1 nice line
---------------------------------------
group2 here
group2 we
group2 go

행이 첫 번째 및/또는 마지막 행으로도 나타나는지는 상관하지 않습니다. 이 시점에서는 정보를 분리할 무언가가 필요합니다.

sed또는 으로 어떻게 이 작업을 수행할 수 있나요 awk? 아니면 다른 방법이 있을까요?

답변1

그리고 awk:

awk 'NR!=1&&x!=$1{print "---"} {x=$1}1' file
  • NR!=1&&x!=$1: 첫 번째 행을 제외한 모든 행에 적용하고 첫 번째 필드가 변경되었는지 확인합니다.
  • print "---": 그렇다면 대시를 인쇄하세요.
  • {x=$1}: 다음 반복을 위해 x를 설정합니다.
  • 1awk: 각 행의 실제 조건을 인쇄합니다.

관련 정보