次のファイルがあります。
{&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 },
別のファイルには、1行に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