ファイルがあり、次の出力ファイルを使用して仕様に従ってスクリプトを生成する必要があります。
入力ファイルには、出力に含める必要がある最初の28行のヘッダーがあります。入力の一部の行には、特定のパラメータZH:すべての値(例:ZH:100またはZH:50)があります。 ZHパラメータがある列は行ごとに異なります。
私の出力ファイルには、ヘッダー行とその値が100を超えるZHパラメータ(ZH:105、ZH:200など)を含む行を含める必要があります。
ZHパラメータを含まない行は省略されます。
答え1
使用head
とgrep
:
(
# get header
head -n 28 file
# grep lines with ZH value > 100
grep -Ew "ZH:.:[1-9][0-9]{2,}" file
) > outfile
答え2
最小限の例がなければ、必要なものを推測することは困難です。
とにかくパラメータを使用して行をawk
フィルタリングするには、ZH
次のスクリプトが役に立ちます。
awk 'strtonum(gensub(/^.*ZH:.:([0-9]+).*$/, "\\1", "1"))>100' file
これにより、同様のフィールドを含むすべての行が印刷されますZH:<one character>:<some number>
。
gensub
に関連する数字を抽出しますZH
。その後、数値に変換され、数値100と比較されます。