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

网站优化销售话术吉林长春网络公司有哪些

网站优化销售话术,吉林长春网络公司有哪些,网站空间怎么申请,微信小程序线上商城怎么申请一、正则表达式 Shell正则表达式分为两种#xff1a; 基础正则表达式#xff1a;BRE#xff08;basic regular express#xff09; 扩展正则表达式#xff1a;ERE#xff08;extend regular express#xff09;#xff0c;扩展的表达式有、?、|和() 1.1 基本正则表…一、正则表达式 Shell正则表达式分为两种 基础正则表达式BREbasic regular express 扩展正则表达式EREextend regular express扩展的表达式有、?、|和() 1.1 基本正则表达式 1.2 扩展正则表达式 1.3 支持正则表达式的工具 grep默认不支持扩展表达式加-E选项开启ERE。如果不加-E使用花括号要加转义符\{\} egrep支持基础和扩展表达式 awk支持egrep所有的正则表达式 sed默认不支持扩展表达式加-r选项开启ERE。如果不加-r使用花括号要加转义符\{\} 二、grep 过滤来自一个文件或标准输入匹配模式内容。 除此之外还有 grep -f从文件每一行获取匹配模式 grep -m输出匹配的结果num数 grep -H打印每个匹配的文件名 grep -h不输出文件名 grep -q不输出正常信息 grep -s不输出错误信息 grep -r递归目录 grep -B打印匹配的前几行 grep -A打印匹配的后几行 grep -C打印匹配的前后几行 grep --color匹配的字体颜色 1输出b文件在a文件相同的行 grep -f a b 2输出b文件在a文件不同的行 grep -v -f a b 3匹配多个模式 echo a bc de |xargs -n1 |grep -e a -e bc a bc 注xargs为多行输出-n1表示一行输出1个参数 4去除文件内的空行和#开头的行一般用于查看配置文件 grep -E -v ^$|.*# /etc/httpd/conf/httpd.conf 5匹配开头不分大小写的单词 echo A a b c |xargs -n1 |grep -i a A a 6只显示匹配的字符串 echo this is a test |grep -o is is is 7输出匹配的前五个结果 seq 1 20 |grep -m 5 -E [0-9]{2} 10 11 12 13 14 8统计匹配多少行 seq 1 20 |grep -c -E [0-9]{2} 11 9匹配b字符开头的行 echo a bc de |xargs -n1 |grep ^b bc 10匹配de字符结尾的行并输出匹配的行 echo a ab abc abcd abcde |xargs -n1 |grep -n de$ 5:abcde 11递归搜索/etc目录下包含ip的conf后缀文件 grep --include只检索匹配的文件 grep -r 192.167.1.1 /etc --include *.conf 12排除搜索bak后缀的文件 grep --exclude跳过匹配的文件 grep -r 192.167.1.1 /opt --exclude *.bak 13匹配所有IP ifconfig |grep -E -o [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} 14打印匹配结果及后3行 seq 1 10 |grep 5 -A 3 5 6 7 8 15打印匹配结果及前3行 seq 1 10 |grep 5 -B 3 2 3 4 16打印匹配结果及前后3行 seq 1 10 |grep 5 -C 3 2 3 4 5 6 7 8 三、sed 流编辑器过滤和替换文本。 工作原理sed命令将当前处理的行读入模式空间进行处理处理完把结果输出并清空模式空间。然后再将下一行读入模式空间进行处理输出以此类推直到最后一行。还有一个空间叫保持空间又称暂存空间可以暂时存放一些处理的数据但不能直接输出只能放到模式空间输出。 这两个空间其实就是在内存中初始化的一个内存区域存放正在处理的数据和临时存放的数据。 语法格式sed [选项] 地址 命令 file 借助一些文本内容作为示例 [rootopenEuler-1 script]# cat sed.txt nimgtw 48003/udp # Nimbus Gateway 3gpp-cbsp 48049/tcp # 3GPP Cell Broadcast Service Protocol isnetserv 48128/tcp # Image Systems Network Services isnetserv 48128/udp # Image Systems Network Services blp5 48129/tcp # Bloomberg locator blp5 48129/udp # Bloomberg locator com-bardac-dw 48556/tcp # com-bardac-dw com-bardac-dw 48556/udp # com-bardac-dw iqobject 48619/tcp # iqobject iqobject 48619/udp # iqobject 3.1 匹配打印p 1打印匹配blp5开头的行 [rootopenEuler-1 script]# sed -n /^blp5/p sed.txt blp5 48129/tcp # Bloomberg locator blp5 48129/udp # Bloomberg locator2打印第一行 [rootopenEuler-1 script]# sed -n 1p sed.txt nimgtw 48003/udp # Nimbus Gateway3打印第一行至第三行 [rootopenEuler-1 script]# sed -n 1,3p sed.txt nimgtw 48003/udp # Nimbus Gateway 3gpp-cbsp 48049/tcp # 3GPP Cell Broadcast Service Protocol isnetserv 48128/tcp # Image Systems Network Services4打印奇数行 [rootopenEuler-1 script]# seq 10 | sed -n 1~2p 1 3 5 7 95打印匹配行及后一行 [rootopenEuler-1 script]# sed -n /blp5/,1p sed.txt blp5 48129/tcp # Bloomberg locator blp5 48129/udp # Bloomberg locator6打印最后一行 [rootopenEuler-1 script]# sed -n $p sed.txt iqobject 48619/udp # iqobject7不打印最后一行 感叹号也就是对后面的命令取反。 [rootopenEuler-1 script]# sed -n $!p sed.txt nimgtw 48003/udp # Nimbus Gateway 3gpp-cbsp 48049/tcp # 3GPP Cell Broadcast Service Protocol isnetserv 48128/tcp # Image Systems Network Services isnetserv 48128/udp # Image Systems Network Services blp5 48129/tcp # Bloomberg locator blp5 48129/udp # Bloomberg locator com-bardac-dw 48556/tcp # com-bardac-dw com-bardac-dw 48556/udp # com-bardac-dw iqobject 48619/tcp # iqobject8匹配范围blp5开头的行~com开头的行 以逗号分开两个样式选择某个范围。 [rootopenEuler-1 script]# sed -n /^blp5/,/^com/p sed.txt blp5 48129/tcp # Bloomberg locator blp5 48129/udp # Bloomberg locator com-bardac-dw 48556/tcp # com-bardac-dw3.2 匹配删除d 删除与打印使用方法类似打印是把匹配的打印出来删除是把匹配的删除删除只是不用-n选项。 1删除包含blp5的行 [rootopenEuler-1 script]# sed /^blp5/d sed.txt nimgtw 48003/udp # Nimbus Gateway 3gpp-cbsp 48049/tcp # 3GPP Cell Broadcast Service Protocol isnetserv 48128/tcp # Image Systems Network Services isnetserv 48128/udp # Image Systems Network Services com-bardac-dw 48556/tcp # com-bardac-dw com-bardac-dw 48556/udp # com-bardac-dw iqobject 48619/tcp # iqobject iqobject 48619/udp # iqobject2删除1~3行 [rootopenEuler-1 script]# sed 1,3d sed.txt isnetserv 48128/udp # Image Systems Network Services blp5 48129/tcp # Bloomberg locator blp5 48129/udp # Bloomberg locator com-bardac-dw 48556/tcp # com-bardac-dw com-bardac-dw 48556/udp # com-bardac-dw iqobject 48619/tcp # iqobject iqobject 48619/udp # iqobject 3去除http.conf文件空行和开头#号的行 [rootopenEuler-1 script]# sed /^$/d;/.*#/d /etc/httpd/conf/httpd.conf3.3 替换s/// 1替换blp5字符串为test [rootopenEuler-1 script]# sed s/blp5/test/ sed.txt nimgtw 48003/udp # Nimbus Gateway 3gpp-cbsp 48049/tcp # 3GPP Cell Broadcast Service Protocol isnetserv 48128/tcp # Image Systems Network Services isnetserv 48128/udp # Image Systems Network Services test 48129/tcp # Bloomberg locator test 48129/udp # Bloomberg locator com-bardac-dw 48556/tcp # com-bardac-dw com-bardac-dw 48556/udp # com-bardac-dw iqobject 48619/tcp # iqobject iqobject 48619/udp # iqobject2替换开头是blp5的字符串并打印 [rootopenEuler-1 script]# sed -n s/blp5/test/p sed.txt test 48129/tcp # Bloomberg locator test 48129/udp # Bloomberg locator3使用命令引用匹配内容并替换 [rootopenEuler-1 script]# sed s/48049/.0/ sed.txt nimgtw 48003/udp # Nimbus Gateway 3gpp-cbsp 48049.0/tcp # 3GPP Cell Broadcast Service Protocol isnetserv 48128/tcp # Image Systems Network Services isnetserv 48128/udp # Image Systems Network Services blp5 48129/tcp # Bloomberg locator blp5 48129/udp # Bloomberg locator com-bardac-dw 48556/tcp # com-bardac-dw com-bardac-dw 48556/udp # com-bardac-dw iqobject 48619/tcp # iqobject iqobject 48619/udp # iqobject4给IP加引号 g全局替换 [rootopenEuler-1 script]# echo 192.168.121.11 172.1.1.2 223.5.5.5 | sed -r s/[^ ]/“”/g “192.168.121.11” “172.1.1.2” “223.5.5.5”5对1-5行的blp5进行替换 [rootopenEuler-1 script]# sed 1,5s/blp5/test/ sed.txt nimgtw 48003/udp # Nimbus Gateway 3gpp-cbsp 48049/tcp # 3GPP Cell Broadcast Service Protocol isnetserv 48128/tcp # Image Systems Network Services isnetserv 48128/udp # Image Systems Network Services test 48129/tcp # Bloomberg locator blp5 48129/udp # Bloomberg locator com-bardac-dw 48556/tcp # com-bardac-dw com-bardac-dw 48556/udp # com-bardac-dw iqobject 48619/tcp # iqobject iqobject 48619/udp # iqobject6对匹配行进行替换 [rootopenEuler-1 script]# sed /48129\/tcp/s/blp5/test/ sed.txt nimgtw 48003/udp # Nimbus Gateway 3gpp-cbsp 48049/tcp # 3GPP Cell Broadcast Service Protocol isnetserv 48128/tcp # Image Systems Network Services isnetserv 48128/udp # Image Systems Network Services test 48129/tcp # Bloomberg locator blp5 48129/udp # Bloomberg locator com-bardac-dw 48556/tcp # com-bardac-dw com-bardac-dw 48556/udp # com-bardac-dw iqobject 48619/tcp # iqobject iqobject 48619/udp # iqobject7二次匹配替换 [rootopenEuler-1 script]# sed s/blp5/test/;s/3g/4g/ sed.txt nimgtw 48003/udp # Nimbus Gateway 4gpp-cbsp 48049/tcp # 3GPP Cell Broadcast Service Protocol isnetserv 48128/tcp # Image Systems Network Services isnetserv 48128/udp # Image Systems Network Services test 48129/tcp # Bloomberg locator test 48129/udp # Bloomberg locator com-bardac-dw 48556/tcp # com-bardac-dw com-bardac-dw 48556/udp # com-bardac-dw iqobject 48619/tcp # iqobject iqobject 48619/udp # iqobject8注释匹配行后的多少行 [rootopenEuler-1 script]# seq 10 | sed /5/,3s/^/#/ 1 2 3 4 #5 #6 #7 #8 9 103.4 多重编辑-e [rootopenEuler-1 script]# sed -e 1,2d -e s/blp5/test/ sed.txt isnetserv 48128/tcp # Image Systems Network Services isnetserv 48128/udp # Image Systems Network Services test 48129/tcp # Bloomberg locator test 48129/udp # Bloomberg locator com-bardac-dw 48556/tcp # com-bardac-dw com-bardac-dw 48556/udp # com-bardac-dw iqobject 48619/tcp # iqobject iqobject 48619/udp # iqobject# 也可以使用分隔 [rootopenEuler-1 script]# sed 1,2d;s/blp5/test/ sed.txt isnetserv 48128/tcp # Image Systems Network Services isnetserv 48128/udp # Image Systems Network Services test 48129/tcp # Bloomberg locator test 48129/udp # Bloomberg locator com-bardac-dw 48556/tcp # com-bardac-dw com-bardac-dw 48556/udp # com-bardac-dw iqobject 48619/tcp # iqobject iqobject 48619/udp # iqobject3.5 添加新内容ai、c 1在blp5上一行添加test [rootopenEuler-1 script]# sed /blp5/i \test sed.txt nimgtw 48003/udp # Nimbus Gateway 3gpp-cbsp 48049/tcp # 3GPP Cell Broadcast Service Protocol isnetserv 48128/tcp # Image Systems Network Services isnetserv 48128/udp # Image Systems Network Services test blp5 48129/tcp # Bloomberg locator test blp5 48129/udp # Bloomberg locator com-bardac-dw 48556/tcp # com-bardac-dw com-bardac-dw 48556/udp # com-bardac-dw iqobject 48619/tcp # iqobject iqobject 48619/udp # iqobject2在blp5下一行添加test [rootopenEuler-1 script]# sed /blp5/a \test sed.txt nimgtw 48003/udp # Nimbus Gateway 3gpp-cbsp 48049/tcp # 3GPP Cell Broadcast Service Protocol isnetserv 48128/tcp # Image Systems Network Services isnetserv 48128/udp # Image Systems Network Services blp5 48129/tcp # Bloomberg locator test blp5 48129/udp # Bloomberg locator test com-bardac-dw 48556/tcp # com-bardac-dw com-bardac-dw 48556/udp # com-bardac-dw iqobject 48619/tcp # iqobject iqobject 48619/udp # iqobject3将blp5替换新行 [rootopenEuler-1 script]# sed /blp5/c \test sed.txt nimgtw 48003/udp # Nimbus Gateway 3gpp-cbsp 48049/tcp # 3GPP Cell Broadcast Service Protocol isnetserv 48128/tcp # Image Systems Network Services isnetserv 48128/udp # Image Systems Network Services test test com-bardac-dw 48556/tcp # com-bardac-dw com-bardac-dw 48556/udp # com-bardac-dw iqobject 48619/tcp # iqobject iqobject 48619/udp # iqobject3.6 读取文件并追加到匹配行后r [rootopenEuler-1 script]# cat a.txt 123 456 [rootopenEuler-1 script]# sed /blp5/r a.txt sed.txt nimgtw 48003/udp # Nimbus Gateway 3gpp-cbsp 48049/tcp # 3GPP Cell Broadcast Service Protocol isnetserv 48128/tcp # Image Systems Network Services isnetserv 48128/udp # Image Systems Network Services blp5 48129/tcp # Bloomberg locator 123 456 blp5 48129/udp # Bloomberg locator 123 456 com-bardac-dw 48556/tcp # com-bardac-dw com-bardac-dw 48556/udp # com-bardac-dw iqobject 48619/tcp # iqobject iqobject 48619/udp # iqobject3.7 将匹配行写入文件w [rootopenEuler-1 script]# sed /blp5/w b.txt sed.txt nimgtw 48003/udp # Nimbus Gateway 3gpp-cbsp 48049/tcp # 3GPP Cell Broadcast Service Protocol isnetserv 48128/tcp # Image Systems Network Services isnetserv 48128/udp # Image Systems Network Services blp5 48129/tcp # Bloomberg locator blp5 48129/udp # Bloomberg locator com-bardac-dw 48556/tcp # com-bardac-dw com-bardac-dw 48556/udp # com-bardac-dw iqobject 48619/tcp # iqobject iqobject 48619/udp # iqobject [rootopenEuler-1 script]# cat b.txt blp5 48129/tcp # Bloomberg locator blp5 48129/udp # Bloomberg locator3.8 读取下一行n和N n 读取下一行到模式空间。 N 追加下一行内容到模式空间并以换行符\n分隔。 1打印匹配的下一行 [rootopenEuler-1 script]# seq 5 |sed -n /3/{n;p} 4 2打印偶数 [rootopenEuler-1 script]# seq 10 | sed -n n;p 2 4 6 8 10 # sed先读取第一行1执行n命令获取下一行2此时模式空间是2 # 执行p命令打印模式空间。 现在模式空间是2sed再读取3 # 执行n命令获取下一行4此时模式空间为4执行p命令以此类推. 3打印奇数 [rootopenEuler-1 script]# seq 10 |sed n;d 1 3 5 7 9 # sed先读取第一行1此时模式空间是1并打印模式空间1 # 执行n命令获取下一行2执行d命令删除模式空间的2sed再读取3 # 此时模式空间是3并打印模式空间再执行n命令获取下一行4 # 执行d命令删除模式空间的3以此类推. 3.9 打印和删除模式空间的第一行P和D P 打印模式空间的第一行。 D 删除模式空间的第一行。 1打印奇数 [rootopenEuler-1 script]# seq 6 | sed -n N;P 1 3 52保留最后一行 [rootopenEuler-1 script]# seq 6 | sed N;D 6 # 读取第一行1执行N命令读取下一行并追加到模式空间 # 此时模式空间是1\n2执行D命令删除模式空间第一行1剩余2. # 读取第二行执行N命令此时模式空间是3\n4 # 执行D命令删除模式空间第一行3剩余4,以此类推. 3.10 保持空间操作h与H、g与G和x h 复制模式空间内容到保持空间覆盖。 H 复制模式空间内容追加到保持空间。 g 复制保持空间内容到模式空间覆盖。 G 复制保持空间内容追加到模式空间。 x 模式空间与保持空间内容互换。 1将匹配的内容覆盖到另一个匹配 [rootopenEuler-1 script]# seq 6 | sed -e /3/{h;d} -e /5/g 1 2 4 3 6 # h命令把匹配的3复制到保持空间d命令删除模式空间的3. # 后面命令再对模式空间匹配5并用g命令把保持空间3覆盖模式空间5. 2将匹配的内容放到最后 [rootopenEuler-1 script]# seq 6 | sed -e /3/{h;d} -e $G 1 2 4 5 6 3 # 这里的$代表最后一行G表示将保持空间的内容追加到当前行的后面 3交换模式空间和保持空间 [rootopenEuler-1 script]# seq 6 | sed -e /3/{h;d} -e /5/x -e $G 1 2 4 3 6 5 # 在模式空间匹配5并将保持空间的3与5交换5就变成了3. # 最后把保持空间的5追加到模式空间. 4倒序输出 [rootopenEuler-1 script]# seq 5 |sed 1!G;h;$!d 5 4 3 2 1 # 1!G 第一行不执行把保持空间内容追加到模式空间因为现在保持空间还没有数据 # h 将模式空间放到保持空间暂存 # $!d 最后一行不执行删除模式空间的内容。 5每行后面添加新空行 [rootopenEuler-1 script]# seq 5 |sed G 12345 3.11 忽略大小写匹配I [rootopenEuler-1 script]# echo -e a\nA\nb\nc |sed s/a/1/Ig 1 1 b c3.12 获取总行数 [rootopenEuler-1 script]# seq 10 |sed -n $ 10四、awk awk 是一个处理文本的编程语言工具能用简短的程序处理标准输入或文件、数据排序、计算以及 生成报表等。 基本的命令语法awk option pattern {action} file 其中pattern表示AWK在数据中查找的内容而action是在找到匹配内容时所执行的一系列命令。花括号用于根据特定的模式对一系列指令进行分组。 awk 处理的工作方式与数据库类似支持对记录和字段处理这也是grep和sed不能实现的。在awk中缺省的情况下将文本文件中的一行视为一个记录逐行放到内存中处理而将一行中的某一部分作为记录中的一个字段。用1,2,3...数字的方式顺序的表示行记录中的不同字段。用$后跟数字引用对应的字段以逗号分隔0表示整个行。 4.1 选项、模式 1从文件读取awk程序处理文件 [rootopenEuler-1 script]# cat test.awk {print $2} [rootopenEuler-1 script]# tail -n3 /etc/services | awk -f test.awk 45514/udp 45514/tcp 46998/tcp2指定分隔符打印指定字段默认以空格分割 [rootopenEuler-1 script]# tail -n3 /etc/passwd | awk -F: {print $1} apache mysql nginx3指定多个分隔符作为同一个分隔符处理 [rootopenEuler-1 script]# tail -n3 /etc/services cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System spremotetablet 46998/tcp # Capture handwritten signatures[rootopenEuler-1 script]# tail -n3 /etc/services | awk -F[/#] {print $1} cloudcheck-ping 45514 cloudcheck 45514 spremotetablet 46998 [rootopenEuler-1 script]# tail -n3 /etc/services | awk -F[/#] {print $2} udp tcp tcp [rootopenEuler-1 script]# tail -n3 /etc/services | awk -F[/#] {print $3}ASSIA CloudCheck WiFi Management keepaliveASSIA CloudCheck WiFi Management SystemCapture handwritten signatures 4变量赋值 [rootopenEuler-1 script]# awk -v a123 BEGIN{print a} 1235输出awk全局变量到文件 [rootopenEuler-1 script]# seq 5 | awk --dump-variables {print $0} 1 2 3 4 5 [rootopenEuler-1 script]# cat awkvars.out ARGC: 1 ARGIND: 0 ARGV: array, 1 elements BINMODE: 0 CONVFMT: %.6g ENVIRON: array, 25 elements ERRNO: FIELDWIDTHS: FILENAME: - FNR: 5 FPAT: [^[:space:]] FS: FUNCTAB: array, 41 elements IGNORECASE: 0 LINT: 0 NF: 1 NR: 5 OFMT: %.6g OFS: ORS: \n PREC: 53 PROCINFO: array, 21 elements RLENGTH: 0 ROUNDMODE: N RS: \n RSTART: 0 RT: \n SUBSEP: \034 SYMTAB: array, 28 elements TEXTDOMAIN: messages6BEGIN和END BEGIN模式是在处理文件之前执行该操作常用于修改内置变量、变量赋值和打印输出的页眉或标 题。END模式是在程序处理完才会执行。 示例 [rootopenEuler-1 script]# cat frequent_ip.sh #!/bin/bash ######################### #File name:frequent_ip.sh #Email:obboda163.com #Created time:2025-01-14 11:46:11 #Description:访问nginx日志得到访问ip最多的前10个 #########################log_path/var/log/nginx/access.log# 拿取按照访问次数排序过的ip sort_dataawk {print $1} /var/log/nginx/access.log | sort | uniq -c# 按照sort_data的数据进行优化处理打印输出 echo $sort_data | awk BEGIN{printf %-10s %-10s %-10s \n,访问排名,访问IP,访问次数} {printf %-10s %-20s %-10s \n,NR,$2,$1} END{print end............}[rootopenEuler-1 script]# bash frequent_ip.sh 访问排名 访问IP 访问次数 1 192.168.121.1 8 2 192.168.121.12 3 3 192.168.121.13 2 4 192.168.121.131 1 5 192.168.121.51 4 end............4.2 内置变量 1FS和OFS 在程序开始前重新赋值FS变量改变默认分隔符为冒号与-F一样。 [rootopenEuler-1 script]# head -n5 /etc/passwd | awk BEGIN{FS:}{print $1,$2} root x bin x daemon x adm x lp x# 也可以使用-v来重新赋值这个变量并指定输出分隔符 [rootopenEuler-1 script]# head -n5 /etc/passwd | awk -vFS: {print $1,$2} root x bin x daemon x adm x lp x# 也可以指定输出分隔符 [rootopenEuler-1 script]# head -n5 /etc/passwd | awk BEGIN{FS:;OFS#}{print $1,$2} root#x bin#x daemon#x adm#x lp#x 2RS和ORS # 指定以某个字符作为分隔符来处理记录 [rootopenEuler-1 script]# echo www.baidu.com/user/test.html |awk BEGIN{RS/}{print $0} www.baidu.com user test.html# 将输出的换行符替换为号 [rootopenEuler-1 script]# seq 10 | awk BEGIN{ORS}{print $0} 12345678910[rootopenEuler-1 script]# 3NF # NF是字段个数 [rootopenEuler-1 script]# echo a b c d e f | awk {print NF} 6# 打印最后一个字段 [rootopenEuler-1 script]# echo a b c d e f | awk {print $NF} f4NR和FNR NR统计记录编号每处理一行记录编号就会1FNR不同的是在统计第二个文件时会重新计数。 [rootopenEuler-1 script]# tail -n5 /etc/services | awk {print NR,$0} 1 axio-disc 35100/udp # Axiomatic discovery protocol 2 pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API 3 cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive 4 cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System 5 spremotetablet 46998/tcp # Capture handwritten signaturesNR和FNR的区别 [rootopenEuler-1 script]# awk {print NR,FNR,$0} a b 1 1 a 2 2 b 3 3 c 4 1 d 5 2 e 6 3 f5ARGC和ARGV ARGC是命令行参数数量 ARGV是将命令行参数存到数组元素由ARGC指定数组下标从0开始 [rootopenEuler-1 script]# awk BEGIN{print ARGC} 1 2 3 4 [rootopenEuler-1 script]# awk BEGIN{print ARGV[0],ARGV[1]} 1 2 3 awk 16ARGIND ARGIND是当前正在处理的文件索引值第一个文件是1第二个文件是2以此类推从而可以通过这种方式判断正在处理哪个文件。 [rootopenEuler-1 script]# awk {print ARGIND,$0} a b 1 a 1 b 1 c 2 d 2 e 2 f7ENVIRON ENVIRON调用系统变量。 [rootopenEuler-1 script]# awk BEGIN{print ENVIRON[HOME]} /root8FILENAME FILENAME是当前处理文件的文件名。 [rootopenEuler-1 script]# awk {print FILENAME,$0} a b a a a b a c b d b e b f9IGNORECASE IGNORECASE1表示忽略大小写 [rootopenEuler-1 script]# echo A a b c |xargs -n1 |awk BEGIN{IGNORECASE1}/a/ A a4.3 操作符 注意在awk中有3种情况表达式为假数字是0空字符串和未定义的值。且数值运算未定义变量初始值为0。字符运算未定义变量初始值为空。 1截取整数 [rootopenEuler-1 script]# echo 123abc abc123 123abc123 |xargs -n1 | awk {print $0} 123 0 123[rootopenEuler-1 script]# echo 123abc abc123 123abc123 |xargs -n1 | awk {print -$0} -123 0 -123 2打印奇数偶数行 # 打印奇数行 [rootopenEuler-1 script]# seq 6 | awk i!i 1 3 5# 打印偶数行 [rootopenEuler-1 script]# seq 6 | awk !(i!i) 2 4 63管道符的使用 [rootopenEuler-1 script]# seq 5 | shuf | awk {print $0|sort} 1 2 3 4 5 # 其中shuf会将原来的顺序打乱 4三目运算符 [rootopenEuler-1 script]# awk BEGIN{print 11?yes:no} yes4.4 流程控制 1if语句 格式if (condition) statement [ else statement ] # 单分支 [rootopenEuler-1 script]# seq 5 | awk {if($03)print $0} 3# 双分支 [rootopenEuler-1 script]# seq 5 |awk {if($03)print $0;else print no} no no 3 no no2while语句 格式while (condition) statement [rootopenEuler-1 script]# echo 1 2 3 4 5 | awk {i1;while(iNF){print $i;i}} 1 2 3 4 53for语句C语言风格 格式for (expr1; expr2; expr3) statement [rootopenEuler-1 script]# cat file 1 2 3 4 5 6 7 8 9 [rootopenEuler-1 script]# awk {for(i1;iNF;i)print $i} file 1 2 3 4 5 6 7 8 94for语句遍历数组 格式for (var in array) statement [rootopenEuler-1 script]# seq -f str%.g 5 |awk {a[NR]$0}END{for(v in a)print v,a[v]} 1 str1 2 str2 3 str3 4 str4 5 str55break和continue语句 break跳过所有循环continue跳过当前循环。 [rootopenEuler-1 script]# awk BEGIN{for(i1;i5;i){if(i3){break};print i}} 1 2 [rootopenEuler-1 script]# awk BEGIN{for(i1;i5;i){if(i3){continue};print i}} 1 2 4 56exit语句 格式exit [ expression ] exit退出程序与shell的exit一样。[ expr ]是0-255之间的数字。 [rootopenEuler-1 script]# seq 5 |awk {if($0~/3/)exit (123)} [rootopenEuler-1 script]# echo $? 1234.5 内置函数 [rootopenEuler-1 script]# cat c 123abc abc123 123abc123 [rootopenEuler-1 script]# awk {print int($0)} c 123 0 1234.6  I/O语句 # 获取匹配行的下一行 [rootopenEuler-1 script]# seq 5 |awk /3/{getline;print} 44.7 printf语句 格式化输出默认打印字符串不换行。 格式printf [format] arguments # 左对齐宽度10 [rootopenEuler-1 script]# awk BEGIN{printf %-10s %-10s %-10s\n,ID,Name,Passwd} ID Name Passwd
http://www.hkea.cn/news/14543582/

相关文章:

  • 凯里网站建设gzklyywordpress 自助广告插件
  • 网站要怎样建设做网站有域名还需要什么
  • 专题网站策划书黄页模式
  • 用dw做的网站怎么发布宁波建设网图
  • 门户网站开发技术 知乎自适应和响应式的区别
  • oa系统哪个比较好哈尔滨优化网站方法
  • 佛山技术支持 禅城企业网站视觉中国官网
  • 网站建设就业广州seo网站管理
  • 计算机(网站建设与维护)永州内部网站建设公司
  • liferay做网站好吗做网站要不要用jsp
  • 什么叫模板网站佛山网站建设技术外包
  • 中国石油建设工程协会网站化妆品网络营销策划方案
  • 网站建设价格标准渠道上海到北京高铁票价多少
  • 企业官网建站的流程安徽省住房和城乡建设厅网站
  • 会python做网站科技创新网站建设策划书
  • 旗舰店的网站怎么做wordpress sha256
  • 商丘网站建设费用怎么在手机上制作网站吗
  • 网站突然排名没了国际新闻最新消息10条
  • 高端网站建设策划亚马逊跨境电商入门完整教程
  • 咨询公司网站建设163免费邮箱入口
  • 专业网站建设代理商科技企业网站如何建设
  • 徐州梦网科技做网站怎么样百度小程序如何做网站
  • 顺德品牌网站怎么做自已的网站
  • 免费搭建网站模板最新赚钱项目发布平台
  • 做网站标签栏的图片大小招生网站转换率低
  • 西安外贸网站建设网站设计公司地址
  • 惠州公司网站建设移动应用开发就业方向
  • 免费信息发布平台网站仿牌网站空间
  • 检察 网站建设计算机网络技术网站开发
  • 17网站一起做网店株洲废品回收在哪个网站做效果好