ファイル内の単語をGrepし、戻るパターンを検索します。

ファイル内の単語をGrepし、戻るパターンを検索します。

私は単語を検索しなければならないファイルがあり、単語が見つかったらそのレコードを私の出力に残す必要があります。

insert_job: Capture this record as well   job_type: FW
box_name:XXXXXXXXXXXXXXX
machine: XXXXXXXXXXXXXXX
owner: XXXXXXXXXXXXXXXXXXXXX
permission:
date_conditions: 0
description: "This job waits for .trg file of CRH load file. This job waits for 2 hrs and alarms Ops."
term_run_time: 121
box_terminator: 1
max_run_alarm: 120
alarm_if_fail: 1
profile: "XXXXXXXXXXXXX"
timezone: CentralTime
watch_file: "XXXXXXXXXXXXXXXXXXXXXXXXXX"
watch_interval: 30

上記のjilでwatch_fileキーワードを見つけたら、戻ってinsert_jobセクションでジョブ名をキャプチャする必要があります。私のファイルには、出力ファイルを見つけて書く必要があるいくつかのjilがあります。

ベストアンサー1

使用awk:

キーワードを含む行全体をキャプチャするには:

 awk  '/^insert_job|^watch_file/' file

これは次の方法で行うこともできますgrep

grep -E '^insert_job|^watch_file' file

insert_job:キーワードとその後のフィールドのみをキャプチャするには、watch_file:オプションを使用して-Fフィールド区切り文字を設定します。

awk -F'[^ ]*: *' '/^insert_job/{a=$2}/^watch_file/{print a, $2}' file

おすすめ記事