条件付き grep

条件付き grep

次の内容を含む構成ファイルがあります。

    Jobname|Type|Silo|Description
    #comment1
    #comment2
    job1|me|silo1|test_job1
    job1|me|silo1|test_job2
    job1|prod|silo1|test_job3

これで、TYPE = meの内容など、ファイルの条件付き内容が必要です。これにはgrepを使用します。

      job_detail=$((cat config_file | grep me | awk '{print $4}'))

この場合、JOBNAMEは一致する文字meを取得するため、最初の行も取得されます。 -vオプションを使用してコメントをエスケープしました。構成ファイルの最初の行は、不明な他のプロセスで使用されるため説明できません。

フルワードマッチを検索する方法はありますか?特定の文字に基づいて単語全体を把握する方法がある場合は、より良いでしょう。

"|"で行を区切り、次にgrepを使用する方法は?

ベストアンサー1

努力する

awk -F\| -v select="$var" '$2 == select { print $4;}' config_file

どこ

  • $var選択したいフィールドが含まれています。
  • -F\| は awk に | を区切り文字として使用するよう指示し、 |(pipr) をエスケープする必要があります。
  • -v select="$var" $var を awk 変数に転送する (オプション)
  • $2 == select2番目のパラメータが「$ var」の行または選択を選択します。
  • { print $4;}4番目のフィールドを印刷します。

おすすめ記事