当前位置: 首页 > news >正文

广告案例网站用手机域名做网站有多少

广告案例网站,用手机域名做网站有多少,网站分哪几种,wordpress怎样安装awk中文手册下载#xff1a;http://www.klabaster.com/freeware.htm#mawk1. awk简介awk 是一种编程语言#xff0c;用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件#xff0c;或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进…awk中文手册下载http://www.klabaster.com/freeware.htm#mawk1. awk简介awk 是一种编程语言用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能是linux/unix下的一个强大编程工具。它在命令行中使用但更多是作为脚本来使用。awk的处理文本和数据的方式是这样的它逐行扫描文件从第一行到最后一行寻找匹配的特定模式的行并在这些行上进行你想要的操作。如果没有指定处理动作则把匹配的行显示到标准输出 (屏幕)如果没有指定模式则所有被操作所指定的行都被处理。awk分别代表其作者姓氏的第一个字母。因为它的作者是三个人分别是Alfred Aho、Brian Kernighan、Peter Weinberger。gawk是awk的GNU版本它提供了Bell实验室和GNU的一些扩展。下面介绍的awk是以GUN的gawk为例的在 linux系统中已把awk链接到gawk所以下面全部以awk进行介绍。2. awk命令格式和选项2.1. awk的语法有两种形式*awk [options] script varvalue file(s)*awk [options] -f scriptfile varvalue file(s)2.2. 命令选项-F fs or --field-separator fs指定输入文件折分隔符fs是一个字符串或者是一个正则表达式如-F:。-v varvalue or --asign varvalue赋值一个用户定义变量。-f scripfile or --file scriptfile从脚本文件中读取awk命令。-mf nnn and -mr nnn对nnn值设置内在限制-mf选项限制分配给nnn的最大块数目-mr选项限制记录的最大数目。这两个功能是Bell实验室版awk的扩展功能在标准awk中不适用。-W compact or --compat, -W traditional or --traditional在兼容模式下运行awk。所以gawk的行为和标准的awk完全一样所有的awk扩展都被忽略。-W copyleft or --copyleft, -W copyright or --copyright打印简短的版权信息。-W help or --help, -W usage or --usage打印全部awk选项和每个选项的简短说明。-W lint or --lint打印不能向传统unix平台移植的结构的警告。-W lint-old or --lint-old打印关于不能向传统unix平台移植的结构的警告。-W posix打开兼容模式。但有以下限制不识别/x、函数关键字、func、换码序列以及当fs是一个空格时将新行作为一个域分隔符操作符**和**不能代替^和^fflush无效。-W re-interval or --re-inerval允许间隔正则表达式的使用参考(grep中的Posix字符类)如括号表达式[[:alpha:]]。-W source program-text or --source program-text使用program-text作为源代码可与-f命令混用。-W version or --version打印bug报告信息的版本。3. 模式和操作awk脚本是由模式和操作组成的pattern {action} 如$ awk /root/ test或$ awk $3 100 test。两者是可选的如果没有模式则action应用到全部记录如果没有action则输出匹配全部记录。默认情况下每一个输入行都是一条记录但用户可通过RS变量指定不同的分隔符进行分隔。3.1. 模式模式可以是以下任意一个*/正则表达式/使用通配符的扩展集。*关系表达式可以用下面运算符表中的关系运算符进行操作可以是字符串或数字的比较如$2%1选择第二个字段比第一个字段长的行。*模式匹配表达式用运算符~(匹配)和~!(不匹配)。*模式模式指定一个行的范围。该语法不能包括BEGIN和END模式。*BEGIN让用户指定在第一条输入记录被处理之前所发生的动作通常可在这里设置全局变量。*END让用户在最后一条输入记录被读取之后发生的动作。3.2. 操作操作由一人或多个命令、函数、表达式组成之间由换行符或分号隔开并位于大括号内。主要有四部份*变量或数组赋值*输出命令*内置函数*控制流命令4. awk的环境变量Table 1. awk的环境变量变量 描述$n 当前记录的第n个字段字段间由FS分隔。$0 完整的输入记录。ARGC 命令行参数的数目。ARGIND 命令行中当前文件的位置(从0开始算)。ARGV 包含命令行参数的数组。CONVFMT 数字转换格式(默认值为%.6g)ENVIRON 环境变量关联数组。ERRNO 最后一个系统错误的描述。FIELDWIDTHS 字段宽度列表(用空格键分隔)。FILENAME 当前文件名。FNR 同NR但相对于当前文件。FS 字段分隔符(默认是任何空格)。IGNORECASE 如果为真则进行忽略大小写的匹配。NF 当前记录中的字段数。NR 当前记录数。OFMT 数字的输出格式(默认值是%.6g)。OFS 输出字段分隔符(默认值是一个空格)。ORS 输出记录分隔符(默认值是一个换行符)。RLENGTH 由match函数所匹配的字符串的长度。RS 记录分隔符(默认是一个换行符)。RSTART 由match函数所匹配的字符串的第一个位置。SUBSEP 数组下标分隔符(默认值是/034)。5. awk运算符Table 2. 运算符运算符 描述 - * / % ^ ** 赋值?: C条件表达式|| 逻辑或 逻辑与~ ~! 匹配正则表达式和不匹配正则表达式 ! 关系运算符空格 连接 - 加减* / 乘除与求余 - ! 一元加减和逻辑非^ *** 求幂 -- 增加或减少作为前缀或后缀$ 字段引用in 数组成员6. 记录和域6.1. 记录awk把每一个以换行符结束的行称为一个记录。记录分隔符默认的输入和输出的分隔符都是回车保存在内建变量ORS和RS中。$0变量它指的是整条记录。如$ awk {print $0} test将输出test文件中的所有记录。变量NR一个计数器每处理完一条记录NR的值就增加1。如$ awk {print NR,$0} test将输出test文件中所有记录并在记录前显示记录号。6.2. 域记录中每个单词称做“域”默认情况下以空格或tab分隔。awk可跟踪域的个数并在内建变量NF中保存该值。如$ awk {print $1,$3} test将打印test文件中第一和第三个以空格分开的列(域)。6.3. 域分隔符内建变量FS保存输入域分隔符的值默认是空格或tab。我们可以通过-F命令行选项修改FS的值。如$ awk -F: {print $1,$5} test将打印以冒号为分隔符的第一第五列的内容。可以同时使用多个域分隔符这时应该把分隔符写成放到方括号中如$awk -F[:/t] {print $1,$3} test表示以空格、冒号和tab作为分隔符。输出域的分隔符默认是一个空格保存在OFS中。如$ awk -F: {print $1,$5} test$1和$5间的逗号就是OFS的值。7. gawk专用正则表达式元字符一般通用的元字符集就不讲了可参考我的Sed和Grep学习笔记。以下几个是gawk专用的不适合unix版本的awk。/Y匹配一个单词开头或者末尾的空字符串。/B匹配单词内的空字符串。/匹配一个单词的开头的空字符串锚定开始。/匹配一个单词的末尾的空字符串锚定末尾。/w匹配一个字母数字组成的单词。/W匹配一个非字母数字组成的单词。/‘匹配字符串开头的一个空字符串。/匹配字符串末尾的一个空字符串。8. POSIX字符集可参考我的Grep学习笔记9. 匹配操作符(~)用来在记录或者域内匹配正则表达式。如$ awk $1 ~/^root/ test将显示test文件第一列中以root开头的行。10. 比较表达式conditional expression1 ? expression2: expression3例如$ awk {max {$1 $3} ? $1: $3: print max} test。如果第一个域大于第三个域$1就赋值给max否则$3就赋值给max。$ awk $1 $2 100 test。如果第一和第二个域相加大于100则打印这些行。$ awk $1 5 $2 10 test,如果第一个域大于5并且第二个域小于10则打印这些行。11. 范围模板范围模板匹配从第一个模板的第一次出现到第二个模板的第一次出现之间所有行。如果有一个模板没出现则匹配到开头或末尾。如$ awk /root/,/mysql/ test将显示root第一次出现到mysql第一次出现之间的所有行。12. 一个验证passwd文件有效性的例子1$ cat /etc/passwd | awk -F: /2NF ! 7{/3printf(line %d,does not have 7 fields:%s/n,NR,$0)}/4$1 !~ /[A-Za-z0-9]/{printf(line %d,non alpha and numeric user id:%d: %s/n,NR,$0)}/5$2 * {printf(line %d, no password: %s/n,NR,$0)}1 cat把结果输出给awkawk把域之间的分隔符设为冒号。2 如果域的数量(NF)不等于7就执行下面的程序。3 printf打印字符串line ?? does not have 7 fields并显示该条记录。4 如果第一个域没有包含任何字母和数字printf打印“no alpha and numeric user id 并显示记录数和记录。5 如果第二个域是一个星号就打印字符串“no passwd”紧跟着显示记录数和记录本身。13. 几个实例*$ awk /^(no|so)/ test-----打印所有以模式no或so开头的行。*$ awk /^[ns]/{print $1} test-----如果记录以n或s开头就打印这个记录。*$ awk $1 ~/[0-9][0-9]$/(print $1} test-----如果第一个域以两个数字结束就打印这个记录。*$ awk $1 100 || $2 50 test-----如果第一个或等于100或者第二个域小于50则打印该行。*$ awk $1 ! 10 test-----如果第一个域不等于10就打印该行。*$ awk /test/{print $1 10} test-----如果记录包含正则表达式test则第一个域加10并打印出来。*$ awk {print ($1 5 ? ok $1: error$1)} test-----如果第一个域大于5则打印问号后面的表达式值否则打印冒号后面的表达式值。*$ awk /^root/,/^mysql/ test----打印以正则表达式root开头的记录到以正则表达式mysql开头的记录范围内的所有记录。如果找到一个新的正则表达式root开头的记录则继续打印直到下一个以正则表达式mysql开头的记录为止或到文件末尾。14. awk编程14.1. 变量*在awk中变量不需要定义就可以直接使用变量类型可以是数字或字符串。*赋值格式Variable expression如$ awk $1 ~/test/{count $2 $3; print count} test,上式的作用是,awk先扫描第一个域一旦test匹配就把第二个域的值加上第三个域的值并把结果赋值给变量count最后打印出来。*awk 可以在命令行中给变量赋值然后将这个变量传输给awk脚本。如$ awk -F: -f awkscript month4 year2004 test上式的month和year都是自定义变量分别被赋值为4和2004。在awk脚本中这些变量使用起来就象是在脚本中建立的一样。注意如果参数前面出现test那么在BEGIN语句中的变量就不能被使用。*域变量也可被赋值和修改如$ awk {$2 100 $1; print } test,上式表示如果第二个域不存在awk将计算表达式100加$1的值并将其赋值给$2如果第二个域存在则用表达式的值覆盖$2原来的值。再例如$ awk $1 root{$1 test;print} test如果第一个域的值是“root”则把它赋值为“test”注意字符串一定要用双引号。*内建变量的使用。变量列表在前面已列出现在举个例子说明一下。$ awk -F: {IGNORECASE1; $1 MARY{print NR,$1,$2,$NF}test把IGNORECASE设为1代表忽略大小写打印第一个域是mary的记录数、第一个域、第二个域和最后一个域。14.2. BEGIN模块BEGIN 模块后紧跟着动作块这个动作块在awk处理任何输入文件之前执行。所以它可以在没有任何输入的情况下进行测试。它通常用来改变内建变量的值如OFS, RS和FS等以及打印标题。如$ awk BEGIN{FS:; OFS/t; ORS/n/n}{print $1,$2,$3} test。上式表示在处理输入文件以前域分隔符(FS)被设为冒号输出文件分隔符(OFS)被设置为制表符输出记录分隔符(ORS)被设置为两个换行符。$ awk BEGIN{print TITLE TEST}只打印标题。14.3. END模块END不匹配任何的输入文件但是执行动作块中的所有动作它在整个输入文件处理完成后被执行。如$ awk END{print The number of records is NR} test上式将打印所有被处理的记录数。14.4. 重定向和管道*awk 可使用shell的重定向符进行重定向输出如$ awk $1 100 {print $1 output_file } test。上式表示如果第一个域的值等于100则把它输出到output_file中。也可以用来重定向输出但不清空文件只做追加操作。*输出重定向需用到getline函数。getline从标准输入、管道或者当前正在处理的文件之外的其他输入文件获得输入。它负责从输入获得下一行的内容并给NF,NR和FNR等内建变量赋值。如果得到一条记录getline函数返回1如果到达文件的末尾就返回0如果出现错误例如打开文件失败就返回-1。如$ awk BEGIN{ date | getline d; print d} test。执行linux的date命令并通过管道输出给getline然后再把输出赋值给自定义变量d并打印它。$ awk BEGIN{date | getline d; split(d,mon); print mon[2]} test。执行shell的date命令并通过管道输出给getline然后getline从管道中读取并将输入赋值给dsplit函数把变量d转化成数组mon然后打印数组mon的第二个元素。$ awk BEGIN{while( ls | getline) print}命令ls的输出传递给geline作为输入循环使getline从ls的输出中读取一行并把它打印到屏幕。这里没有输入文件因为 BEGIN块在打开输入文件前执行所以可以忽略输入文件。$ awk BEGIN{printf What is your name?; getline name /dev/tty } $1 ~name {print Found name on line , NR .} END{print See you, name .} test。在屏幕上打印”What is your name?,并等待用户应答。当一行输入完毕后getline函数从终端接收该行输入并把它储存在自定义变量name中。如果第一个域匹配变量 name的值print函数就被执行END块打印See you和name的值。$ awk BEGIN{while (getline /etc/passwd 0) lc; print lc}。awk将逐行读取文件/etc/passwd的内容在到达文件末尾前计数器lc一直增加当到末尾时打印lc的值。注意如果文件不存在getline返回-1如果到达文件的末尾就返回0如果读到一行就返回1所以命令 while (getline /etc/passwd)在文件不存在的情况下将陷入无限循环因为返回-1表示逻辑真。*可以在awk中打开一个管道且同一时刻只能有一个管道存在。通过close()可关闭管道。如$ awk {print $1, $2 | sort } test END {close(sort)}。awd把print语句的输出通过管道作为linux命令sort的输入,END块执行关闭管道操作。*system函数可以在awk中执行linux的命令。如$ awk BEGIN{system(clear)。*fflush函数用以刷新输出缓冲区如果没有参数就刷新标准输出的缓冲区如果以空字符串为参数如fflush(),则刷新所有文件和管道的输出缓冲区。14.5. 条件语句awk中的条件语句是从C语言中借鉴过来的可控制程序的流程。14.5.1. if语句格式{if (expression){statement; statement; ...}}$ awk {if ($1 $2) print $2 too high} test。如果第一个域小于第二个域则打印。$ awk {if ($1 $2) {count; print ok}} test.如果第一个域小于第二个域则count加一并打印ok。14.5.2. if/else语句用于双重判断。格式{if (expression){statement; statement; ...}else{statement; statement; ...}}$ awk {if ($1 100) print $1 bad ; else print ok} test。如果$1大于100则打印$1 bad,否则打印ok。$ awk {if ($1 100){ count; print $1} else {count--; print $2} test。如果$1大于100则count加一并打印$1否则count减一并打印$1。14.5.3. if/else else if语句用于多重判断。格式{if (expression){statement; statement; ...}else if (expression){statement; statement; ...}else if (expression){statement; statement; ...}else {statement; statement; ...}}14.6. 循环*awk有三种循环:while循环for循环special for循环。*$ awk { i 1; while ( i NF ) { print NF,$i; i}} test。变量的初始值为1若i小于可等于NF(记录中域的个数),则执行打印语句且i增加1。直到i的值大于NF.*$ awk {for (i 1; i *breadkcontinue语句。break用于在满足条件的情况下跳出循环continue用于在满足条件的情况下忽略后面的语句直接返回循环的顶端。如{for ( x3; xNF; x) if ($x0){print Bottomed out!; break}}{for ( x3; xNF; x)if ($x0){print Get next item; continue}}*next语句从输入文件中读取一行然后从头开始执行awk脚本。如{if ($1 ~/test/){next}else {print}}*exit语句用于结束awk程序但不会略过END块。退出状态为0代表成功非零值表示出错。14.7. 数组awk中的数组的下标可以是数字和字母称为关联数组。14.7.1. 下标与关联数组*用变量作为数组下标。如$ awk {name[x]$2};END{for(i0;i *special for循环用于读取关联数组中的元素。格式如下{for (item in arrayname){print arrayname[item]}}$ awk /^tom/{name[NR]$1}; END{for(i in name){print name[i]}} test。打印有值的数组元素。打印的顺序是随机的。*用字符串作为下标。如count[test]*用域值作为数组的下标。一种新的for循环方式for (index_value in array) statement。如:$ awk {count[$1]} END{for(name in count) print name,count[name]} test。该语句将打印$1中字符串出现的次数。它首先以第一个域作数组count的下标第一个域变化索引就变化。*delete 函数用于删除数组元素。如$ awk {line[x]$1} END{for(x in line) delete(line[x])} test。分配给数组line的是第一个域的值所有记录处理完成后special for循环将删除每一个元素。14.8. awk的内建函数14.8.1. 字符串函数*sub函数匹配记录中最大、最靠左边的子字符串的正则表达式并用替换字符串替换这些字符串。如果没有指定目标字符串就默认使用整个记录。替换只发生在第一次匹配的时候。格式如下sub (regular expression, substitution string):sub (regular expression, substitution string, target string)实例$ awk { sub(/test/, mytest); print } testfile$ awk { sub(/test/, mytest); $1}; print } testfile第一个例子在整个记录中匹配替换只发生在第一次匹配发生的时候。如要在整个文件中进行匹配需要用到gsub第二个例子在整个记录的第一个域中进行匹配替换只发生在第一次匹配发生的时候。*gsub函数作用如sub但它在整个文档中进行匹配。格式如下gsub (regular expression, substitution string)gsub (regular expression, substitution string, target string)实例$ awk { gsub(/test/, mytest); print } testfile$ awk { gsub(/test/, mytest), $1 }; print } testfile第一个例子在整个文档中匹配test匹配的都被替换成mytest。第二个例子在整个文档的第一个域中匹配所有匹配的都被替换成mytest。*index函数返回子字符串第一次被匹配的位置偏移量从位置1开始。格式如下index(string, substring)实例$ awk { print index(test, mytest) } testfile实例返回test在mytest的位置结果应该是3。*length函数返回记录的字符数。格式如下length( string )length实例$ awk { print length( test ) } $ awk { print length } testfile第一个实例返回test字符串的长度。第二个实例返回testfile文件中第条记录的字符数。*substr函数返回从位置1开始的子字符串如果指定长度超过实际长度就返回整个字符串。格式如下substr( string, starting position )substr( string, starting position, length of string )实例$ awk { print substr( hello world, 7,11 ) } 上例截取了world子字符串。*match函数返回在字符串中正则表达式位置的索引如果找不到指定的正则表达式则返回0。match函数会设置内建变量RSTART为字符串中子字符串的开始位置RLENGTH为到子字符串末尾的字符个数。substr可利于这些变量来截取字符串。函数格式如下match( string, regular expression )实例$ awk {startmatch(this is a test,/[a-z]$/); print start}$ awk {startmatch(this is a test,/[a-z]$/); print start, RSTART, RLENGTH }第一个实例打印以连续小写字符结尾的开始位置这里是11。第二个实例还打印RSTART和RLENGTH变量这里是11(start)11(RSTART)4(RLENGTH)。*toupper和tolower函数可用于字符串大小间的转换该功能只在gawk中有效。格式如下toupper( string )tolower( string )实例$ awk { print toupper(test), tolower(TEST) }*split函数可按给定的分隔符把字符串分割为一个数组。如果分隔符没提供则按当前FS值进行分割。格式如下split( string, array, field separator )split( string, array )实例$ awk { split( 20:18:00, time, : ); print time[2] }上例把时间按冒号分割到time数组内并显示第二个数组元素18。14.8.2. 时间函数*systime函数返回从1970年1月1日开始到当前时间(不计闰年)的整秒数。格式如下systime()实例$ awk { now systime(); print now }*strftime函数使用C库中的strftime函数格式化时间。格式如下systime( [format specification][,timestamp] )Table 3. 日期和时间格式说明符格式 描述%a 星期几的缩写(Sun)%A 星期几的完整写法(Sunday)%b 月名的缩写(Oct)%B 月名的完整写法(October)%c 本地日期和时间%d 十进制日期%D 日期 08/20/99%e 日期如果只有一位会补上一个空格%H 用十进制表示24小时格式的小时%I 用十进制表示12小时格式的小时%j 从1月1日起一年中的第几天%m 十进制表示的月份%M 十进制表示的分钟%p 12小时表示法(AM/PM)%S 十进制表示的秒%U 十进制表示的一年中的第几个星期(星期天作为一个星期的开始)%w 十进制表示的星期几(星期天是0)%W 十进制表示的一年中的第几个星期(星期一作为一个星期的开始)%x 重新设置本地日期(08/20/99)%X 重新设置本地时间(120000)%y 两位数字表示的年(99)%Y 当前月份%Z 时区(PDT)%% 百分号(%)实例$ awk { nowstrftime( %D, systime() ); print now }$ awk { nowstrftime(%m/%d/%y); print now }14.8.3. 内建数学函数Table 4. 函数名称 返回值atan2(x,y) y,x范围内的余切cos(x) 余弦函数exp(x) 求幂int(x) 取整log(x) 自然对数rand() 随机数sin(x) 正弦sqrt(x) 平方根srand(x) x是rand()函数的种子int(x) 取整过程没有舍入rand() 产生一个大于等于0而小于1的随机数14.8.4. 自定义函数在awk中还可自定义函数格式如下function name ( parameter, parameter, parameter, ... ) {statementsreturn expression # the return statement and expression are optional}15. How-to*如何把一行竖排的数据转换成横排awk {printf(%s,,$1)} filename            再分享一下我老师大神的人工智能教程吧。零基础通俗易懂风趣幽默还带黄段子希望你也加入到我们人工智能的队伍中来https://blog.csdn.net/jiangjunshow
http://wiki.neutronadmin.com/news/103570/

相关文章:

  • 安徽制作网站专业公司中铁建设集团有限公司下属公司
  • 四川做网站的公司ip网址域名查询网
  • 网站推广效果的评价指标有信息技术做网站
  • 网站如何做百度才会收录大淘客网站建设app
  • 哪里有做网站的网站主机免备案吗
  • 北京网站建设哪便宜网站图片最大尺寸
  • 网站建设报价单初期整理奎文建设局网站
  • 网站建站建设哪家好黄冈app下载推广平台
  • htm5网站建设浙江省城乡建设监方网站
  • 杭州网站关键词推广网站开发文档撰写模板
  • 关于外贸公司的网站建设工程其它费计算网站
  • 网站前台怎么套用织梦后台万网如何上传静态网站
  • 贸易公司如何做网站只做绿色食品的网站
  • 一级域名的网站怎么做国内老牌的网站制作
  • 网站标题怎么设置免费制作主图的网站
  • net网站开发框架网络营销解释
  • 深圳企业网站公司wordpress侧边栏二级菜单
  • 网站建设完工报告网站开发晋升空间 路径
  • 网站模板 phpcmsiis7创建网站
  • 沧州网站域名注册服务公司网站关键词更改
  • 仿99健康网网站源码网站美化教程下载
  • 美的集团网站建设团购网站短信平台
  • 网站建设费用包括哪些方面做网站上面图片的软件
  • 合肥住房城乡建设部的网站智慧团建网站登录平台pc端
  • 网站建设 昆明 价格wordpress插件浏览权限
  • 可以看设计的网站有哪些网站搭建培训学校
  • 东莞设计网站服务的公司达内前端
  • 西安易码建站网站工作室和网络公司
  • 手机网站安全证书过期怎么处理西安专业做网站的公司
  • 简历做的很棒的网站1688网站一起做网店