次の内容を含む構成ファイルがあります。
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 == select
2番目のパラメータが「$ var」の行または選択を選択します。{ print $4;}
4番目のフィールドを印刷します。