Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linuxシェルawkは外部変数(変数値)を取得します。はじめにここに記載されている

Linuxシェルawkは外部変数(変数値)を取得します。はじめにここに記載されている

  

はawk、シェルを書いている友人が公開されると信じています。 AWKはテキストを扱うためのプログラミング言語ツールです。 AWKは非常に強力な機能を提供します。1.正規表現と一致することができます2.スタイルローディング3.フロー制御4.数学演算子5.プロセス制御ステートメント6.組み込み変数と関数

awkを完全なプログラミング言語と考えると、テキストの処理速度は驚くほど速いです。これを行うために、多くのシェルベースのログ分析ツールを使用できるようになりました。デザインはシンプルでスピードはとても良いです。上記の6つの側面については、今後の記事で紹介します。今回は、主に、awk実行文に外部変数を渡す方法を説明します。


まず基本を以下に示します。

awk [-F re] [パラメータ...] ['pattern {action}'] [-f progfile] [in_file]。 ..]

awkの一般的な構文は上記のとおりです。

如:

[chengmo @ localhost〜] $ echo 'awk code' |  Awk 'BEGIN {印刷"開始\\ n ================= {印刷$ 0} END {印刷" ========= \\ nend"}'開始========================================================================== awkの2つの特別な表現、BEGINおよびEND (前のawkの構文を参照してください。)BEGINとENDの役割は、プログラムに初期状態を与え、プログラムの終了後にテールテーリング作業を実行することです。 BEGINの後({}内)にリストされている操作はすべて、awkが入力のスキャンを開始する前に実行され、ENDの後にリストされている操作は、全入力をスキャンした後に実行されます。したがって、BEGINは通常、変数の表示と変数の事前設定(初期化)に使用され、ENDは最終結果の出力に使用されます。


次に、外部変数メソッドを取得します。

1、通常の外部変数を取得します。

[chengmo @ localhost〜] $ test = 'awk code' [ ,null,null,3],Chengmo @ localhost〜] $ echo |  Awk '{print test}' test =" $ test" awkコード[chengmo @ localhost〜] $ echo |  Awk test =" $ test" '{print test}' awk:cmd。行:1:fatal:ファイル `{print test} 'を読み込むことができません(そのようなファイルまたはディレクトリはありません)


:awk‘ {action}’変数名=変数値のような形式で、変数をアクションに渡すことができます。注:変数名と値は’ {action}’の後に配置されます。

[chengmo @ localhost〜] $ echo |  Awk 'BEGIN {print test}' test =" $ test>


この変数はBEGINアクションには使用できません。

2.BEGINプログラムブロック内の変数

[chengmo @ localhost〜] $ test = 'awkコード' [chengmo @ localhost〜] $ echo |  Awk -v test =" $ test" 'BEGIN {print test}' awkコード[chengmo @ localhost〜] $ echo |  Awk -v test =" $ test" '{print test}' awkコード


形式は、次のとおりです。awk&nd; v変数名=変数値[– v変数2 =値] 2…] 'BEGIN {action}’注:-vを使用して変数を渡すことは、タイプ3のアクションでは可能ですが、アクションの前の順序で可能です。


3.環境変数の取得

[chengmo @ localhost〜] $ awk 'BEGIN {for(i in ENVIRON){print i" =" ENVIRON [i AWKPATH =。:/usr /share /awkSSH_ASKPASS = /usr /libexec /openssh /gnome-ssh-askpassSELINUX_LEVEL_REQUESTED = SELINUX_ROLE_REQUESTED = LANG = en_US.UTF-8 .......


呼び出す必要があるのは:awk組み込み変数ENVIRONです。環境変数を直接取得できます。それは辞書の配列です。環境変数名はそのキー値です。

Copyright © Windowsの知識 All Rights Reserved