두 파일의 대체 줄 병합

두 파일의 대체 줄 병합

파일 1:

.tid.setnr := 1123 
.tid.setnr := 3345 
.tid.setnr := 5431
.tid.setnr := 89323

파일 2:

.tid.info := 12
.tid.info := 3
.tid.info := 44
.tid.info := 60

결과물 파일:

.tid.info := 12
.tid.setnr := 1123
.tid.info := 3
.tid.setnr := 3345
.tid.info := 44
.tid.setnr := 5431
.tid.info := 60
.tid.setnr := 89323

답변1

사용paste:

paste -d \\n file2 file1

답변2

또 다른 awk 솔루션:

awk '{print; getline < "file1"; print}' file2

답변3

이것paste해결책가장 휴대성이 좋고 효율적입니다. 두 파일의 줄 수가 다른 경우에 해당 동작을 선호하는 경우 이 대안을 언급하겠습니다.

GNU 사용 sed:

sed Rfile1 file2

file1보다 적은 줄이 file2있으면 소진 file1될 때 sed아무것도 출력되지 않습니다 ( 의 경우 빈 줄과 반대 paste).

file1보다 많은 줄이 있으면 이러한 추가 줄은 삭제됩니다( with 에 대해 빈 줄을 인쇄하는 file2대신 ).file2paste

$ paste a b
1       a
2       b
3
4
$ paste -d \\n a b
1
a
2
b
3

4

$ sed Rb a
1
a
2
b
3
4
$ sed Ra b
a
1
b
2

답변4

가장 간단한 해결책은 다음과 같습니다.

cat file1 >> file2

또는

cat file2 >> file1

관련 정보