戻ります:
awkコマンド構造と構文構造
awkコマンド構造
awk [ -- ] program-text file ... (1)
awk -f program-file [ -- ] file ... (2)
awk -e program-text [ -- ] file ... (3)
どこで:
文法構造のawk
awkはawkの構文構造は、コード部の構造です。
awkの構文はいっぱいあるpattern{action}
パターン、彼らはawkのルールと呼ばれます。
例えば:
awk '
BEGIN{n=3}
/^[0-9]/{$1>5{$1=333;print $1}
/Alice/{print "Alice"}
END{print "hello"}
' a.txt
# 等价的单行式:
awk 'BEGIN{n=3} /^[0-9]/{$1>5{$1=333;print $1} /Alice/{print "Alice"} END{print "hello"}' a.txt
上記の例では、ブロックは、BEGIN文あり、2つの主要なコードブロックがあるENDステートメントブロック、コードブロックパターンなどの2つの主な用途の正規表現です。
awkの構文について:
- 複数の
pattern{action}
組み合わせで直接接続
- 同じ行に複数のステートメントでのアクションは、セミコロン区切りを使用する必要がある場合
- ラインパターンのための部分をスクリーニングする、アクションは、スクリーニングによって後に行われる動作を表します。
- そして、行動パターンを省略することができます
- 省略
pattern
実行される各アクションの行データに相当し、- 例えば:
awk '{print $0}' a.txt
- 例えば:
- コードブロックは省略され
{action}
、同等{print}
、すなわちすべての出力ライン- たとえば、次のように
awk '/Alice/' a.txt
相当しますawk '/Alice/{print $0}' a.txt
- たとえば、次のように
- 省略コードブロック
action
のスクリーニングラインを表明は、何もしません- 例えば:
awk '/Alice/{}' a.txt
- 例えば:
pattern{action}
任意の部分を省略することができます。- 例えば:
awk '' a.txt
- 例えば:
- 省略
パターンとアクション
ためのpattern{action}
パターン部が使用されていてもよい文章構造(文のブロックが参照されている)、次のモードに記載されています。
# 特殊pattern
BEGIN
END
# 布尔代码块
/regular expression/ # 正则匹配成功与否 /a.*ef/{action}
relational expression # 即等值比较、大小比较 3>2{action}
pattern && pattern # 逻辑与 3>2 && 3>1 {action}
pattern || pattern # 逻辑或 3>2 || 3<1 {action}
! pattern # 逻辑取反 !/a.*ef/{action}
(pattern) # 改变优先级
pattern ? pattern : pattern # 三目运算符决定的布尔值
# 范围pattern,非布尔代码块
pattern1, pattern2 # 范围,pat1打开、pat2关闭,即flip,flop模式
アクション部分は、印刷など、任意のステートメントにすることができます。