<目> 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の機能を書くには、以下の点に注意を払う必要があります:変数
元のインストール日を検索&quot;中国語のシステム入力:cmd /k systeminfo
Linuxプラットフォームを開発または運用しているエンジニアにとって、Linuxシステムの最後の再起動時間を照会する3つの方法を共有する必要があります。 : 方法1:lastコマンド#last reb
基本概念 仮想化により、異なるオペレーティングシステムを持つ複数の仮想マシンを同じ物理マシン上で独立して並行して実行できます。各仮想マシンには、オペレーティングシステムやアプリケーションをロードできる
Linuxでプログラムを追加および削除するのは非常に面倒ですソフトウェアのインストールは、ソフトウェアをインストールするための最も簡単なダブルクリックrpmパッケージを除いて、奇妙と言えます。 mak
uディスクでwin10システムをインストールするにはどうすればいいですか? uディスクインストールwin10システムステップ
Win8ショートカットの矢印を削除して小さなアイコンをシールドする方法
ファイルチェッカーツールを使用して、win7システム内の修復された紛失または破損したシステムファイルを解決する方法
Win10でIEなどのブラウザにアクセスできない場合はどうすればいいですか。 Win10ブラウザはインターネットにアクセスできない
完全にファイルの方法を完全に削除するには、暗号コマンドを使用して頑固なファイルのWin10システムを完全に削除する方法
WinXPのレポート "Windowsはローカルに保存されている設定ファイルを読み込めません"と私は何をすべきですか?