2016-11-04 5 views
0

純粋な[g] awkコードでユーザー入力をしようとしています。今は、レポートを生成するために、今日または現在の日数を入力する必要があります。私はawk内でユーザーの入力を読むためのルーチンを見つけることができません。いつか私はawk上でsprintfかprintfのどちらかを使って文書を読んだことがありましたが、どうしたらいいのか分かりません。awkまたはvariableの検索パターン内のユーザー入力

OR awkでは

、私はそれに基づいて検索し、その後、セットアップに変数をブロックを開始し、使用して、それは非常に役に立つ変数基づいて検索を検索するために探していませんよ。以下のようなもの:

awk -F "|" ' BEGIN { PWR="Nov 3"; } 
/Deployment started at PWR/ { print $1 + $NF }' /var/log/deployments 

これは攻撃的に私に「展開は11月3日に開始」のパターンのための任意の検索を拒否します。

答えて

0

正規表現のスラッシュの内側には、変数にアクセスできません。あなたができることは、検索フレーズから文字列を作り、その文字列を正規表現として適用することです。

awk -F "|" ' BEGIN { PWR="Nov 3"; } 
$0 ~ "Deployment started at "PWR { print $1 + $NF }' /var/log/deployments 
+0

これはかなり不必要に壊れやすいです。私は代わりに文字列の比較を使用したいと思います: 'index($ 0、"展開は "PWR"で始まりました)。うまくいけば、PWRの設定の白い空白は '11月3日'と '11月30日'の間違ったマッチを排除することを望みます。 –

関連する問題