AWKヘッダーから値を取得して列に印刷する方法は?

AWKヘッダーから値を取得して列に印刷する方法は?

txtファイルのヘッダーからいくつかの値を取得し、ファイルによって行数が異なる列にコピーする必要があります。ここに例があります。

入力ファイル:

PROJECT : PRK33
X_COR : 258524
Y_COR : 225898
DATUM : 874

DEPTH   TIME

0        0
1        7
2        16
3        20

結果ファイル:

0        0    258524 225898 874
1        7    258524 225898 874
2        16   258524 225898 874
3        20   258524 225898 874

ベストアンサー1

ヘッダーが提供したものとまったく同じであり、データが行8から始まるという仮定に基づいて考えられる簡単なアプローチは次のとおりです。

  1. その値を維持しながら、関心のあるヘッダー行と一致させます。
  2. 最初のデータ行から始めて、素晴らしい形式を使用して出力に値を追加します。

    awk -F":" '/^X_COR/ { x=$2 } ; /^Y_COR/ { y=$2 } ; /^DATUM/ { d=$2 } ;NR>7 { 印刷 sprintf("%-20s %- 10d %-10d %-10d",$0,x,y,d) }' YourInputFile

例と異なる場合は、行番号と形式を調整する必要があります。

おすすめ記事