awk基本语法

awk基本语法

基本用法

awk [options] 'script' var=value file(s)
awk [options] -f scriptfile var=value file(s)

options
-F fs or --field-separator fs
-v var=value or --asign var=value
-f scripfile or --file scriptfile

script format
    pattern {action}    # both are optional

pattern
    regular express     awk '/101/ {print $1$2}' file
    relation express    awk '$1 == 5' file
    match express,      awk '/101/,/105/' file
    regular match       awk '$1 ~ /101/ {print $1}' file
    BEGIN               awk 'BEGIN { FS="[: /t|]" }
    END                 END {print "The total is $" cost>"filename"}' file
action
    separated by a ‘;’ or new-line character.

使用例子:

  • 例子1. 删除空行
awk '/^$/ { next }
          { print $0 }
    ' a.txt
or
awk '! /^$/ { printf("%s\n",$0) }' a.txt
  • 例子2:在匹配的行前/后插入空行
# 插入空行到行前面
awk '
    /BBBBBB/ { printf("\n%s\n",$0); next }
             { print $0}
  ' t.txt
# 插入空行到行后面
awk '
    /BBBBBB/ { printf("%s\n\n",$0); next }
             { print $0}
  ' t.txt
# 插入空行到行前面和后面
awk '
    /BBBBBB/ { printf("\n%s\n\n",$0); next }
             { print $0}
  ' t.txt

例子3:awk使用环境变量

awk 'BEGIN { print ENVIRON["HOME"]}' t.txt

你可能感兴趣的:(awk基本语法)