awk의 n 줄마다 입력 파일의 줄을 삽입하십시오.

awk의 n 줄마다 입력 파일의 줄을 삽입하십시오.

입력 파일 A와 B는 다음과 같습니다.

파일 A

1 1 1
2 2 2
3 3 3

문서 B

10 10 10
20 20 20
30 30 30
40 40 40
50 50 50
60 60 60 
70 70 70

파일 A의 첫 번째 줄부터 첫 번째 줄부터 시작하여 파일 B의 3줄마다 파일 A에 한 줄을 삽입하여 출력은 다음과 같습니다.

1 1 1
10 10 10
20 20 20
30 30 30
2 2 2
40 40 40
50 50 50
60 60 60 
3 3 3 
70 70 70

처음에는 세 행마다 별도의 파일을 생성하려고 했지만 데이터 세트가 매우 커서 하드 드라이브 공간을 절약하는 데 관심이 있었습니다.

답변1

awk를 사용할 필요가 없으면 붙여넣기를 사용할 수 있습니다.

$ paste -d '\n' <fileB fileA - - - | tr -s '\n' >fileC

tr부분은 반드시 필요한 것은 아니므로 추가 줄바꿈이 마음에 들지 않으면 제거할 수 있습니다.

답변2

좋은 사례인 것 같습니다 getline.

awk '(NR-1)%3 == 0 {getline line < "FileA"; print line} 1' FileB
1 1 1
10 10 10
20 20 20
30 30 30
2 2 2
40 40 40
50 50 50
60 60 60 
3 3 3
70 70 70

답변3

GNU sed R명령을 사용하십시오:

sed -e $'R fileb\nR fileb\nR fileb' filea > output

관련 정보