​​awk内置字符串函数​​


awk内置字符串函数:

gsub(r, s) 在整个$0中用s替代r

awk 'gsub(/name/, "xingming") {print $0}' temp

gsub(r, s, t) 在整个t中用s替代r

index(s, t) 返回s中字符串t的第一位置

awk 'BEGIN {print index("Sunny", "ny")}' temp 返回4

length(s) 返回s的长度

match(s, r) 测试s是否包含匹配r的字符串

awk '$1=="J.Lulu" {print match($1, "u")}' temp 返回4

split(s, a, fs) 在fs上将s分成序列a

awk 'BEGIN {print split("12#345#6789", myarray, "#")"'

返回3, 同时myarray[1]="12", myarray[2]="345", myarray[3]="6789"

sprint(fmt, exp) 返回经fmt格式化后的exp

sub(r, s) 从$0中最左边最长的子串中用s代替r(只更换第一遇到的匹配字符串)

substr(s, p) 返回字符串s中从p开始的后缀部分

substr(s, p, n) 返回字符串s中从p开始长度为n的后缀部分



​awk与shell参数传递(或说变量传递)二三点 ​



http://net.pku.edu.cn/~yhf/tutorial/awk_manual.html


#!/bin/sh

#$1 video id

#$2 save result file

#####################################################################


url="a//baidu.com"

abc=`awk -v url=$url 'BEGIN{print url;print "result:"index(url,"//");}'`

#abc=`awk 'BEGIN{url="\\baidu.com";print index(url,"\\");}'`

#abc=`awk 'BEGIN{print "123";}'`

echo abc=$abc

index( String1, String2 ) 在由 String1 参数指定的字符串(其中有出现 String2 指定的参数)中,返回位置,从 1 开始编号。如果 String2 参数不在 String1 参数中出现,则返回 0(零)。


一个奔跑的程序员