두 개의 파일을 병합합니다. 첫 번째 파일의 첫 번째 줄, 두 번째 파일의 첫 번째 줄

두 개의 파일을 병합합니다. 첫 번째 파일의 첫 번째 줄, 두 번째 파일의 첫 번째 줄

두 개의 파일이 있습니다.

f1:                                      f2:
==============                         ===============
some text line 1                       A1
some text line 2                       A2
some text line 3                       A3

이 두 파일을 빠르게 병합하여 f3을 생성할 수 있습니다.

some text line 1
A1
some text line 2
A2
some text line 3 
A3

답변1

이것은 직업입니다 paste:

paste -d'\n' f1.txt f2.txt

예:

$ cat foo.txt 
some text line 1
some text line 2
some text line 3

$ cat bar.txt 
A1
A2
A3

$ paste -d'\n' foo.txt bar.txt 
some text line 1
A1
some text line 2
A2
some text line 3
A3

답변2

예, while 루프를 사용하여 이 작업을 수행하고 read.

#!/bin/sh

while read file1 <&3 && read file2 <&4
do
    printf "%s\n" "$file1" >> mergedFile.txt
    printf "%s\n" "$file2" >> mergedFile.txt
done 3</path/to/file1/file1.txt 4</path/to/file2/file2.txt

echo대신 mergedFile.txt에서 .result를 사용할 수 있습니다 printf. 처리 중인 파일이 그다지 크지 않은 경우 위의 접근 방식이 대부분의 솔루션보다 더 쉽고 이식성이 뛰어납니다.

답변3

POSIX awk; 이것은 여러 파일에서 작동하며 파일의 줄 수가 같을 필요도 없습니다. 모든 파일이 줄 수를 초과할 때까지 스크립트가 계속 실행됩니다.

BEGIN {
  do {
    br = ch = 0
    while (++ch < ARGC)
      if (getline < ARGV[ch]) {
        print
        br = 1
      }
  } while (br)
}

관련 정보