2016-06-14 14 views
2
cat log | awk '/^Jun 14 11:52/,/^Jun 14 11:56/' 

これは動作します。この2つのタイムスタンプの間にログの行が表示されます。awk変数が日付グレープでは機能しません

cat log | awk -v start="$startTime" -v end="$endTime" '/^start/,/^end/

これは動作しません。空を返します。

私はawk変数を使用した方法に何か問題がありますか?

答えて

6

正規表現リテラル//の間には、変数を使用できません。

あなたは使用することができます魔法のように

awk -v start="$startTime" -v end="$endTime" '$0 ~ "^" start{p=1} p; $0 ~ "^" end{p=0}' log 
+1

作品。この使用方法を説明する文書はありますか? – egorulz

+0

これについてのドキュメントはありませんが、いくつかのオンラインawkチュートリアルでは、同様の例を示しています。 – anubhava

関連する問題