この関数はawkのチュートリアルを使用しています  AWKので、それらの複雑なデータ型定義高水準言語なしで、スクリプト言語です。 AWKは、変数を定義する、各変数は、文字列型と数値の値を有するように演算、文字列操作よりAWKの何に関与する機能だけでなく、ユーザ定義関数をサポートします。次の記事内容は、次の3つの部分のために展開されます。

  • 算術関数、文字列関数
  • カスタム関数が

    旅に乗り出すようになりました。算術演算機能実質的
    関数が数値パラメータを受け取り、数値戻り
    、算術関数は、一般的に次の

    関数名を
    説明
    < {印刷INT(4.5)、INT(4.1)、INT(4.6)}’ THが>
    の(x)は小数のAWK&lsquoに切り捨て整数を示し、出力:4 4 4ランド(x)を返します乱数r、前記0≦= R< 1つのAWK‘ {プリントランド()、関数rand()、関数rand()}’出力:0.237788 0.291066 0.845814にsrand(X)(RANDを生成する)新しいシード番号、あなたは種子の数を指定しない場合は、一日の時間を使用します。この機能は、具体的に以下の2つの関数のrandとsrand関数を説明するために、上記の3つの機能を、私たちはほとんどを使用乱数の以下の詳細な概要を参照してください
    シードの古い値を返します。
    これはawkスクリプトを言っている:BEGIN
    {;印刷のrand();プリントランドを()にsrand();プリントのrand();プリントのrand();}我々はrand.awkとして、このスクリプトを保存します。 0.2377880.2910660.01182260.115346セカンドラン出力
    以下の結果:0.2377880.2910660.7794110.897179
    あなたが最初の二つの実験がわかります
    のawk -f rand.awk結果、以下の第一の出力を実行します。 2つのランダム出力値は、これは、これらの2つの関数は注意を必要とする使用する場所で、同じです。これは、プログラムがすべてで、その結果、各実行で種子の同じ番号から始まるなり、あなたがsrand関数に似srand関数を呼び出すためのパラメータ、(2)のような定数を使用してプログラムを開始する前に、awkのデフォルト、srand関数を呼び出していない場合出力と同じ乱数。我々はたびに異なる乱数の出力をスクリプトを実行したい場合は、最良の方法は、BEGINセクションでsrand関数を呼び出すことです。
    文字列関数は、いずれかの言語で
    、文字列の扱いが非常に重要であり、awkはawkの文字列関数を見て、今も例外ではありません、そして:

    <目> T rの正規表現マッチと置換文字列の文字列s中の関数名
    <目>の記述
    GSUB(R、S、T)すべての文字列。交換の数を返します。 sは与えられていないときにTが与えられていない場合、デフォルトの$ 0インデックスは(s、t)は、文字列sの戻り値のサブストリングの長さt(s)は、文字列sの長さの位置を返し、それが一致$ 0(秒の長さを返します。 RがSに表示されない場合は、0分割されたリターン(S、9)9月列s分解フィールド・セパレータを使用して、複数の正規表現は、次に、開始位置を返す場合、r)はrが起こる発生します配列aの要素に、要素の戻り数。いいえ9月場合は、FSを使用します。アレイフィールドセパレータ及びRの正規表現文字列で置き換え第1一致のsprintfフォーマットされた出力サブ(R、S、T)T Sと同様の方法を用いて分離しました。 Tが与えられていない場合に成功した場合は1を返し、0はそうでなければ、$ 0 SUBSTR(S、P、N)のデフォルトは開始位置Pから文字列sの最大長を返しn個のサブストリングです。いいえN場合、pは文字列s小文字にすべて大文字でのTOLOWER残りの文字列(複数可)を開始してから戻って、新しい文字列を返し、元の文字列が変更されていないとのtoupper(s)は文字すべて小文字で文字列sを大文字に変換して、新しい文字列を返し、元の文字列が変更された
    ではなく、awkの文字列置換に二つの機能を提供します:GSUBとサブ。違いは、グローバル置き換えるが、サブ最初の試合の内容のみを置き換えるGSUBです。
    試験データ:ゼリー:0081245:26:12474125874:04713365412ゼリー{#各行"と一致します。ゼリー""に完全ストリング; JellyThink"(GSUB(/ゼリー/"場合、JellyThink"。 ))印刷#出力:JellyThink:0081245:26:12474125874:04713365412 JellyThink#最初の一致" JellyThink"文字列が置換されている"ゼリー"(サブ(/JellyThink /"場合、ゼリー"))印刷#出力:ゼリー:0081245:26:12474125874:04713365412 JellyThink#は($ 0)#出力tolowerを印刷小文字にすべて大文字に変換:ゼリー:0081245:26:12474125874:04713365412すべての小文字を大文字に変換しjellythink#印刷のtoupper($ 0)#出力:JELLY:26:12474125874:04713365412:0081245:#リターン" JELLYTHINK; T"文字の位置は、位置のみの印刷インデックス文字を返すことができます($ 0"を、T")#$ 0が分割、及び各フィールドの長さは、次の出力を算出する:#[1]ゼリーを=、長さ:5#[2] = 26 、長さ:2#[3] = 12474125874、長さ:11#[4] = 04713365412、長さ:11#[5] = 0081245、長さ:7#[6] = JellyThink、長さ:10、N =スプリット($ 0、フィールド":" I< = N; ++ I){値=はsprintf(" [%のD] =% - 12S、長さ)(I = 1の場合:%D" I、フィールド[I ]、長さ(フィールド[I]));プリント値}(位置=マッチ($ 0 REG)場合){のprintf(" \\%Sに%dの位置に一致するN"、位置、REG)}他{printf関数("申し訳ありませんが、%sの\\ nは"への一致がない;、REGが)}}カスタム関数
    人々は、DIYだったいつもの人が興奮させる、AWKで、我々はまた、私たち自身をカスタマイズすることができます関数、次のように言葉で表現AWK関数の定義:
    関数名(パラメータリスト)パラメータリストのパラメータのカンマ区切りリストは{文}、関数が呼び出されたとき、それらは関数へのパラメータとして渡され。次に、カスタム関数の使用を例示するために簡単な例を用いて:
    試験データ:HelloWorldの#は定義関数の関数挿入=のSUBSTR後(文字列、POS、イン){前に=のSUBSTR(ストリング、1、POS)(文字列イン後}#スクリプト本体{印刷インサート($ 0,5、"前に、POSは、+ 1)のリターン; JellyThink")#出力前にプリント:こんにちは#出力後の印刷:世界は$ 0#出力を印刷:のHelloWorld}スクリプト本体部私たちは前の値と印刷の時間が経過した後、それが出力で見つけることができます。少し必要性の注意があります。

    awkは、関数内で定義された変数は、デフォルトではグローバルであり、伝送パラメータが値で渡され、それが関数内で渡されたパラメータの値を変更すると言うことです、外の機能パラメータの値が起こるだろうされていない変更。これは、とLuaのと少し似ています。そのような文言を
    見える:
    テストデータ:HelloWorldの位定義関数関数インサート(文字列、POS、イン、前、後){前に=の=のSUBSTR後SUBSTR(ストリング、1、POS)(文字列、POS + 1イン前に)復帰後}#スクリプト本体{印刷インサート($ 0,5、" JellyThink")プリント#出力前:<空>#出力後の印刷:<空> $ 0#出力を印刷:HelloWorldの}私は今、何を理解できますか?職場でのawkの機能を書くには、以下の点に注意を払う必要があります:変数

  • パラメータは値渡しされる

  • 要約
    要約
    ので、内部パラメータはグローバル変数で定義されています記事は容易ではありませんが、また、このレイアウトを書き込むには、だけでなく、記事のコードのすべての部分を確認する方法の良い要約をしたい、と記事は「遊ぶAWK」これは、10月初旬の手が書き始めていました、後に、アリの雲投げ、多くの時間を無駄にし、幸い、最後に終了します。簡単ではありません! ! !ファイティング~~~
  • マイクロソフトは、漏洩を防ぐためにWindows 8をロックしました。

    外国メディアの報道によると、WinRumorsのウェブサイトによると、マイクロソフトは、許可されていないユーザーがソフトウェアをインストールしてそれを漏らすのを防ぐために、最新バージョンのWindows 8をロックする。 Microsoftの番号8064のWindows 8バージョンが先週WinRumorsのWebサイトで公開されたとの噂があり、これは来月の開発者カンファレンスで発表される予定だが、事前に漏洩した。 ?&l

    uディスクでwin10システムをインストールするにはどうすればいいですか? uディスクインストールwin10システムステップ

    Win8ショートカットの矢印を削除して小さなアイコンをシールドする方法

    ファイルチェッカーツールを使用して、win7システム内の修復された紛失または破損したシステムファイルを解決する方法

    そしてWindows 7のスーパータスクバーを解析します。

    Win10でIEなどのブラウザにアクセスできない場合はどうすればいいですか。 Win10ブラウザはインターネットにアクセスできない

    完全にファイルの方法を完全に削除するには、暗号コマンドを使用して頑固なファイルのWin10システムを完全に削除する方法

    WinXPのレポート "Windowsはローカルに保存されている設定ファイルを読み込めません"と私は何をすべきですか?

    Microsoftは、Win8ストアからWin8ストアを削除することを約束しています

    CesarFTPを使ったFTPサーバーの構築

    Copyright © Windowsの知識 All Rights Reserved