cat 또는 sed를 사용하지 않고 두 개의 텍스트 파일을 하나로 병합하는 방법

cat 또는 sed를 사용하지 않고 두 개의 텍스트 파일을 하나로 병합하는 방법

파일이 두 개 있어요

파일 1:

a
b
c

파일 2:

1
2
3

이제 csv 파일로 병합해야 합니다.

a;1
b;2
c;3

파일이 정말 크기 때문에 두 번째 파일을 사용 cat하고 처리하지 않는 것이 좋습니다. sed(더 작은 파일의 경우 스크립트를 사용할 수 있습니다). 어떤 아이디어가 있나요? awk/ perl?

답변1

노력하다paste주문하다:

paste -d';' File1 File2 > File3

답변2

#!/usr/bin/awk -f
{
  w[FNR][FILENAME] = $0
}
END {
  for (x in w)
    print w[x][ARGV[1]] ";" w[x][ARGV[2]]
}

나는 또한 이것을 생각해 냈지만 Awk가 배열을 반복하는 방식으로 인해 실패했습니다.

#!/usr/bin/awk -f
{
  w[FNR][FILENAME] = $0
}
END {
  for (x in w) {
    y = 0
    for (z in w[x]) {
      printf w[x][z]
      printf y ? "\n" : ";"
      y = 1
    }
  }
}

관련 정보