これは、Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、MACOSオンラインエミュレーターなどの複数の無料オンラインワークステーションの9つを使用してOnWorks無料ホスティングプロバイダーで実行できるコマンドawkplanXNUMXです。
プログラム:
NAME
awk - パターン指向のスキャンおよび処理言語
SYNOPSIS
awk [ -Ffs ] [ -v var = value ] [ -氏n ] [ -mfn ] [ -f うろつく [ うろつく ] [ file ... ]
DESCRIPTION
やばい 各入力をスキャンします file 指定された一連のパターンのいずれかに一致する行
文字通りで うろつく またはとして指定されたXNUMXつ以上のファイル -f file. それぞれのパターンで
行が file に一致する
パターン。 各行は、すべてのパターンアクションのパターン部分と照合されます
声明; 関連するアクションは、一致したパターンごとに実行されます。 ファイル名
標準入力を意味します。 どれでも file フォームの var = value ではなく、割り当てとして扱われます
ファイル名であり、ファイル名の場合は開かれたときに実行されます。
オプション -v 続い var = value 前に行う課題です うろつく 実行されます。
任意の数 -v オプションが存在する可能性があります。 -F fs オプションは入力フィールドセパレータを定義します
正規表現になる fs.
入力行は通常、空白または通常の文字で区切られたフィールドで構成されます
表現 FS。 フィールドは示されています $1, $2、 ...、 その間 $0 行全体を指します。
If FS nullの場合、入力行は文字ごとにXNUMXつのフィールドに分割されます。
ストレージ管理の不適切な実装を補うために、 -氏 オプションはすることができます
入力レコードの最大サイズを設定するために使用され、 -mf 最大値を設定するオプション
フィールドの数。
パターンアクションステートメントの形式は
パターン { アクション }
行方不明 { アクション } 行を印刷することを意味します。 欠落しているパターンは常に一致します。 パターン-
アクション ステートメントは、改行またはセミコロンで区切られます。
アクションは一連のステートメントです。 ステートメントは、次のいずれかになります。
もし( 表現 ) ステートメント [ そうしないと ステートメント ]
その間( 表現 ) ステートメント
にとって( 表現 ; 表現 ; 表現 ) ステートメント
にとって( VAR in 配列 ) ステートメント
do ステートメント その間( 表現 )
破る
続ける
{[ ステートメント ... ]}
表現 #一般的に VAR = 表現
印刷[ 式リスト ] [> 表現 ]
printf 形式でアーカイブしたプロジェクトを保存します. [、 式リスト ] [> 表現 ]
戻る[ 表現 ]
next#この入力行の残りのパターンをスキップする
nextfile#このファイルの残りをスキップし、次に開き、先頭から開始
削除 配列[ 表現 ]# 配列要素を削除
削除 配列 #配列のすべての要素を削除します
出口 [ 表現 ]#すぐに終了します。 ステータスは 表現
ステートメントは、セミコロン、改行、または右中括弧で終了します。 空っぽ 表現-
リスト の略 $0. 文字列定数は " " で囲まれ、通常の C エスケープが認識されます
内部。 式は、必要に応じて文字列または数値を取り、を使用して構築されます
オペレーター + - * / % ^ (累乗)、および連結 (空白で示されます)。
オペレーター ! ++ -- += -= *= /= %= ^= > >= < <= == != ?: でも利用可能です
式。 変数は、スカラー、配列要素(で示される)の場合があります x[i]) またはフィールド。
変数はnull文字列に初期化されます。 配列の添え字は、任意の文字列にすることができます。
必然的に数値。 これにより、連想メモリの形式が可能になります。 複数の添え字
など [i、j、k] 許可されています。 構成要素は連結され、値で区切られます
of サブセップ.
当学校区の 印刷 ステートメントは、引数を標準出力(またはファイルの場合)に出力します >file or
>>file 存在するか、パイプ上にある場合 |CMD が存在する)、現在の出力フィールドで区切られている
出力レコード区切り記号で終了します。 file CMD 文字通りかもしれません
名前または括弧で囲まれた式; 異なるステートメントの同一の文字列値は、
同じ開いているファイル。 The printf ステートメントは、式リストを次のようにフォーマットします。
フォーマット(を参照) fprintf(2)). 内蔵機能 選ぶ(式) ファイルまたはパイプを閉じます 式.
内蔵機能 fflush(式) ファイルまたはパイプのバッファリングされた出力をフラッシュします 式.
数学関数 EXP, ログ, 平方根, 罪, COS, あたん2 ビルトインです。その他のビルトイン-
関数で:
長さ 文字列として取得された引数の長さ、または $0 引数がない場合。
ランド (0,1)の乱数
地獄 種をまく ランド 前のシードを返します。
int型 整数値に切り捨てます
UTF 数値引数である文字番号をUTF文字列に変換します
substr(s, m, n)
n-の文字部分文字列 s 位置で始まる m 1から数えます。
索引(s, t)
の位置 s ここで文字列 t 発生するか、発生しない場合は0。
マッチ(s, r)
の位置 s ここで正規表現 r 発生するか、発生しない場合は0。 The
variables 再スタート 長さ 一致した位置と長さに設定されます
文字列。
スプリット(s, a, fs)
文字列を分割します s 配列要素に a【1], a【2]……、 a[n]、および返します nを選択します。
分離は正規表現で行われます fs またはフィールドセパレータを使用 FS if
fs 与えられていません。 フィールドセパレータとしての空の文字列は、文字列をXNUMXつに分割します
文字ごとの配列要素。
サブ(r, t, s)
代用品 t 正規表現の最初の出現に対して r 文字列内 s.
If s 与えられていない、 $0 使用されている。
gサブ と同じ 以下 ただし、正規表現のすべての出現箇所が置き換えられます。 以下
gサブ 置換数を返します。
sprintf(FMT, 式, ...)
フォーマットの結果の文字列 式 ... による printf 形式でアーカイブしたプロジェクトを保存します. FMT
システム(CMD)
実行 CMD 終了ステータスを返します
tolower(STR)
のコピーを返します STR すべて大文字が翻訳されています
対応する小文字の同等物。
toupper(STR)
のコピーを返します STR すべての小文字が翻訳されています
対応する大文字の同等物。
「機能」 ゲットライン セット $0 現在の入力ファイルから次の入力レコードへ。
ゲットライン <file セット $0 から次のレコードへ file. ゲットライン x 変数を設定します x を代わりにお使いください。
最後に、 CMD | ゲットライン の出力をパイプします CMD に ゲットライン; の各呼び出し ゲットライン 収益
からの出力の次の行 CMD。 すべての場合において、 ゲットライン 入力が成功すると1を返します。
ファイルの終わりの場合は 0、エラーの場合は -1。
パターンは任意のブール値の組み合わせです ( ! || &&)正規表現と
関係式。 正規表現は次のとおりです 正規表現(6)。 孤立したレギュラー
パターン内の式は、行全体に適用されます。 正規表現は、
演算子を使用した関係式 ~ !~. /re/ 一定のレギュラーです
表現; 任意の文字列(定数または変数)を正規表現として使用できます。
パターン内の孤立した正規表現の位置。
パターンは、コンマで区切られたXNUMXつのパターンで構成されます。 この場合、アクションは
最初のパターンの出現からの出現までのすべての行に対して実行されます
二番目。
関係式は次のいずれかです。
表現 マッチチョップ 正規表現
表現 リロップ 表現
表現 in 配列名
(式,expr、..。) in 配列名
どこ リロップ CのXNUMXつの関係演算子のいずれかであり、 マッチチョップ どちらかです ~
(一致)または !~ (一致していません)。 条件文は算術式であり、リレーショナルです
式、またはこれらのブール値の組み合わせ。
特別なパターン ベギン 終わり 最初の入力の前に制御をキャプチャするために使用できます
行が読み取られ、最後の後に。 ベギン 終わり 他のパターンと組み合わせないでください。
特別な意味を持つ変数名:
CONVFMT
数値を変換するときに使用される変換形式 (デフォルト %.6g)
FS フィールドを区切るために使用される正規表現。 オプションで設定可能 -Ffs.
NF 現在のレコードのフィールド数
NR 現在のレコードの序数
FNR 現在のファイル内の現在のレコードの序数
ファイル名
現在の入力ファイルの名前
RS 入力レコード区切り (デフォルトの改行)
FSO 出力フィールドセパレータ(デフォルトは空白)
ORS 出力レコード区切り文字(デフォルトの改行)
OFMT 数値の出力形式(デフォルト %.6g)
サブセップ 複数の添え字を区切ります(デフォルトは034)
ARGC 引数数、割り当て可能
ARGV 引数配列、割り当て可能; null以外のメンバーはファイル名として使用されます
環境
環境変数の配列。 下付き文字は名前です。
関数は (パターン アクション ステートメントの位置で) 次のように定義できます。
関数foo(a、b、c){...; xを返す}
パラメーターは、スカラーの場合は値によって渡され、配列名の場合は参照によって渡されます。 関数は
再帰的に呼び出されます。 パラメータは関数に対してローカルです。 他のすべての変数はグローバルです。
したがって、関数に余分なパラメータを指定することで、ローカル変数を作成できます。
定義。
例
長さ ($0) > 72
72文字より長い行を印刷します。
{$ 2、$1を印刷}
最初の XNUMX つのフィールドを逆の順序で出力します。
BEGIN {FS = "、[\ t] * | [\ t] +"}
{$ 2、$1を印刷}
同じですが、入力フィールドはコンマまたはブランクとタブで区切られています。
{s + = $ 1}
END { print "sum is", s, "average is", s/NR }
最初の列を合計し、合計と平均を出力します。
/起動停止/
スタート/ストップペア間のすべての行を印刷します。
BEGIN {#シミュレーション echo(1)
for(i = 1; i <ARGC; i ++)printf "%s"、ARGV [i]
printf "\ n"
出口 }
SOURCE
/ sys / src / cmd / awk
onworks.netサービスを使用してawkplan9をオンラインで使用する