file_A의 필드를 file_B의 필드로 바꾸는 방법

file_A의 필드를 file_B의 필드로 바꾸는 방법

다음과 같은 파일이 있습니다.

{&structure_name.field, sizeof(structure_name.field),
 &structure_name.field, sizeof(structure_name.field), TODO },
{&structure_name.field, sizeof(structure_name.field),
 &structure_name.field, sizeof(structure_name.field), TODO },
{&structure_name.field, sizeof(structure_name.field),
 &structure_name.field, sizeof(structure_name.field), TODO },   

또 다른 파일에는 한 줄에 2개의 필드가 있는 3개의 레코드가 있습니다.

123 fun1   
456 sum_fun
789 multi_fun

다음과 같은 내용을 제공하는 빠른 명령을 작성하고 싶습니다.

{&structure_name.123, sizeof(structure_name.123),
 &structure_name.123, sizeof(structure_name.123), fun1 },
{&structure_name.456, sizeof(structure_name.456),
 &structure_name.456, sizeof(structure_name.456), sum_fun },
{&structure_name.789, sizeof(structure_name.789),
 &structure_name.789, sizeof(structure_name.789), multi_fun },   

답변1

다음과 같이 시도해 볼 수 있습니다.

awk 'NR==FNR { a[2*NR] = $1; a[2*NR-1] = $1; b[2*NR] = $2; b[2*NR-1] = $2; next; }
     { gsub(/field/, a[FNR]); gsub(/TODO/, b[FNR]); print; }' patterns input

관련 정보