学习使用AWK

! /bash/awk

ARGC:1
ARGIND :0
ARGV:array, 1 elements
BINMODE:0
CONVFMT: "%.6g"
ERRNO :""
FIELDWIDTHS:""
FILENAME:""
FNR:0
FPAT : "[^[:space:]]+"
FS :""
IGNORECASE:0
LINT:0
NF:0
NR:0
OFMT: "%.6g"
OFS: ""
ORS: "\n"
RLENGTH:0
RS: "\n"
RESTART:0
RT:""
SUBSEP:"\034"
TEXTDOMAIN: "messages"

BEGIN{
printf "---|Header|---\n"
}
END{
printf "--|Footer|--\n"
}

awk '{printf $3 "\t" $4}' marks.txt
awk '{printf $3 "\t" $4}' marks.txt

awk '/a/ {printf $0}' marks.txt

awk '/a/ {printf $4 "\t" $3}' marks.txt
awk [option] file

awk '/a/{++cnt} END {printf "Count =",cnt}' marks.txt

awk 'length($0) >18' mark.txt

ARGC 表示 在命令行 提供的参数的个数 COUNT
awk "BEGIN {printf "Arguments=" ,ARGC}' ONE TWO THREE

ARGV 表示存储命令行输入参数的数据,数组的有效索引
是从0 到 ARGC-1

BEGIN{
for(i=0; i < ARGC-1;i++){
printf "ARGV[%d] =%s\n",i,ARGV[i]
}
} one two three fours

CONVFMT 表示数据转换为字符串的格式,其默认值为 %.6g
BEGIN{
printf "Conversion Format =",CONVFMT
}

ENVIRON 此变量与环境变量相关的关联数组变量
BEGIN{
printf ENVIRON["USER"]
}

FILENAME 此变量表示当前文件名称

END{
printf FILENAME
}

FS filedSplit 此变量 表示输入的数据域之间的分隔符,其默认值为空格,
你可以使用 -F 命令行选项 改变 它的默认值

BEGIN{
printf "FS =" ,FS
} |cat -vte

FS =$

NF numsFileds 此变量表示当前输入记录中域的数量
echo -e "one two\n one two three \n one two three four" |awk "NF >2"

NR numsRecords 此变量表示当前记录的数量
该变量类似一个计数器,统计记录的数量

FNR filesNumsRecords 该变量与 NR类似 ,不过它是相对于 当前文件而言的,此变量在处理多个文件
输入时有重要的作用,每当从新的文件中读入时 FNR都会
被重新设置为0

OFMT 此变量表示数值输出的格式,它的默认值为 %.6g

OFS outputFiledsSplit 此变量表示输出域之间的分隔符,其默认为空格 $

ORS outputRecordsSplit 此变量表示输出记录 (行)之间的分隔符,其默认值是换行符

RLENGTH RegexLength此变量表示 match 函数匹配的字符长度,AWK的match
函数用在输入的字符串中搜索指定的字符串

BEGIN{
if(match("one two three","re"){
printf RLENGTH
})
}

RS RecordsSplit 此变量表示输入记录的分隔符,其默认值为换行符

RSTART 此变量表示 由 match函数匹配的字符串的第一个字符的位置

BEGIN{
if(match("one two three","thre")){
print RSTART
}
}

SUBSEP 此变量表示数字下标 的分割行符,其默认值为 \034

$0 此变量 表示 当前 整个输入记录

$n 此变量表示 当前 输入记录的 第 n 个域,这些域之间
由 FS 分割

ARGIND 此变量表示当前文件中正在处理的ARGV 数组的索引值

BINMODE 指定 I/O 都使用二进制模式

ERRNO 此变量用于 存储当 getline 重定向失败或者
close 函数调用失败时 的失败信息
FIELDWIDTHS 该变量 表示 一个分割域之间的空格的宽度

IGNORECASE 设置后 变得大小写不敏感

LINT 当这个变量被设置后,将输出警告信息
PROCINFO 关联数组变量,它保存了进程相关的信息 比如
真正的和有效的UID值

TEXTDOMAIN 寻找程序中 字符串的本地翻译 用于程序的国际化

函数
atan2(y,x)
cos(expr)
exp(expr)
int(expr)
log(expr)
rand()
sin(expr)
sqrt(expr)
srand([expr])
asort(arr,[,d[,how]])
asort(arr,[,d[,how]])
gsub(regx,sub,string)
index(str,sub)
length(str)
match(str,regex)
split(str,arr,regex)
sprintf(format,expr-list)
strtonum(str)
sub(regex,sub,string)
substr(str,start,1)
tolower(str)
toupper(str)
systime
mktime(dataspec)
strftime([format [,timestamp[,utc-flag]]])
compl
lshift
rshift
or
xor
close(expr)
delete
exit
flush
getline
next
nextfile
return
system
function func_name(arguments ...){

}

apiVersion:v1
clusters:
-cluster:
certificate-authority:/path/to/ca.crt
server:https://[master-ip]:443
name:minikube

contexts:
-context:
cluster:minikube
user:minikube
name:minikube

current-context:minikube
kind:Config
preferences:{}
users:

  • name: minikube
    user:
    client-certificate:/path/io/apiserver.crt
    client-key:/Users/wuyi/.minikube/apiserver.key

你可能感兴趣的:(学习使用AWK)