差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
awk [2016/05/18 13:39] – mumeiyamibito | awk [2018/03/13 16:46] (現在) – [シェル変数をパターンとして引き渡す] mumeiyamibito | ||
---|---|---|---|
行 58: | 行 58: | ||
* $0: レコード (行全体) | * $0: レコード (行全体) | ||
* $1, $2, $3, ...: フィールドの各データ | * $1, $2, $3, ...: フィールドの各データ | ||
- | * 変数は自分で定義することも可能 | + | * 変数は自分で定義することも可能 |
* よく使う組み込み変数 | * よく使う組み込み変数 | ||
* FS: 区切り文字 (データ間を区切る文字) | * FS: 区切り文字 (データ間を区切る文字) | ||
* オプション '' | * オプション '' | ||
- | ==== その他 | + | |
- | | + | ==== 配列 |
- | | + | * 複数のデータをひとまとめにした変数 |
+ | * 定義は不要 | ||
+ | * 配列のインデックスは 1 から始まる (0 ではない) | ||
+ | |||
+ | ==== 演算子 ==== | ||
+ | * 演算 | ||
+ | * 四則演算が使える | ||
+ | * +, -, *, / | ||
+ | * インクリメンタル | ||
+ | * 代入演算子 (+= や -= など) が使える | ||
+ | |||
+ | ==== if ==== | ||
+ | * 条件を分岐する場合\\ < | ||
+ | if (条件1){ | ||
+ | 処理1 | ||
+ | else if (条件2){ | ||
+ | 処理2 | ||
+ | } | ||
+ | else{ | ||
+ | 処理3 | ||
+ | }</ | ||
+ | * 例:\\ < | ||
+ | if (i == 0){ | ||
+ | print " | ||
+ | } | ||
+ | else if (0 < i && i < 10){ | ||
+ | print " | ||
+ | } | ||
+ | else{ | ||
+ | print "10 over" | ||
+ | } | ||
+ | </ | ||
+ | * 条件式で使える記号 | ||
+ | * <, >, <=, =>, == (数値、文字列の比較に使う), != | ||
+ | * &&, || | ||
+ | * 正規表現では ~ で正規表現とつなげる (例: i ~ /hoge/) | ||
+ | |||
+ | |||
+ | ==== for ==== | ||
+ | * 繰り返し処理をする場合に使う\\ < | ||
+ | for (変数の初期化; | ||
+ | 処理 | ||
+ | } | ||
+ | </ | ||
+ | * C 言語の for 文と一緒 | ||
+ | * 例\\ < | ||
+ | for (i = 0; i < 3; i ++){ | ||
+ | print " | ||
+ | } | ||
+ | </ | ||
==== よく使う関数 ==== | ==== よく使う関数 ==== | ||
行 82: | 行 131: | ||
* sub\\ < | * sub\\ < | ||
* gsub\\ < | * gsub\\ < | ||
+ | * split\\ < | ||
+ | * **対象文字列** を **区切り文字** で区切って、**配列** に代入する関数 | ||
+ | * 返り値は、配列の要素数になる\\ < | ||
+ | * length\\ < | ||
+ | * 文字列や配列の長さを出力 | ||
- | ==== 演算子 | + | ==== その他 |
- | * 演算 | + | * 改行 |
- | * 四則演算が使える | + | * 複数行を1行にしたい(ワンライナー)場合、「; |
- | * +, -, *, / | + | |
- | * インクリメンタル | + | |
- | * 代入演算子 (+= や -= など) が使える | + | |
===== awk プログラムの例 ===== | ===== awk プログラムの例 ===== | ||
行 120: | 行 171: | ||
$ awk ' | $ awk ' | ||
</ | </ | ||
+ | |||
+ | ===== Tips ===== | ||
+ | ==== シェル変数をパターンとして引き渡す ==== | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * 参考サイト: | ||
+ | |||
===== 参考サイト ===== | ===== 参考サイト ===== | ||
行 126: | 行 185: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | * [[http:// | ||
+ | {{tag> |