2017-08-29 11 views
0

パターンが変数として渡されているのにawkを使用して2つのパターンの間の行を抽出しようとしていますが、Linux:varをawkに渡すことができません

file.txtをコンテンツ:変数なし

[Data from server] 
line 1 
line 2 
line 3 

[Data from client] 
line 1 
line 2 
line 3 


コマンド:awk 'BEGIN{IGNORECASE=1};/data/ && /server/{f=1} /^$/{f=0} f' file.txt

結果:変数と

[Data from server] 
line 1 
line 2 
line 3 

awk -v var=$myVar 'BEGIN{IGNORECASE=1};/data/ && /myVar/{f=1} /^$/{f=0} f' file.txt 

私は空の結果を得ています!

はそれがあるべき

$0 ~ variable 

($ 0は全行です):あなたが~演算子を使用する場合

+0

"pattern"という単語はあいまいで使用しないでください。あなたの質問の "pattern"をwhatevに置き換えてくださいそれはあなたが 'string'か' regexp'か何かを意味しています。完全一致または部分一致のみを検索している場合は、こちらにも記入してください。 –

答えて

1

を助けてください、変数は正規表現として解釈されます

awk -v var="$myVar" 'BEGIN{IGNORECASE=1};/data/ && $0 ~ var{f=1} /^$/{f=0} f' file.txt 
+0

コマンドが返す:[サーバーからのデータ] 行1行ライン3 [データクライアントから] 行1行ライン3 –

+0

私は間違った変数名を持っていました。編集されました。 – hek2mgl

+0

ありがとうございました。働いて:) –

関連する問題