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

动易网站建设设计培训班学费一般多少

动易网站建设,设计培训班学费一般多少,洛阳做网站价格,0基础做网站工具目录 一、grep 1、参数: 2、示例: 3、grep 正则匹配示例 二、sed 示例: 三、awk 一、语法: 二、常用参数 三、示例 四、条件与循环语句 五、awk调用函数 1、grep:过滤文本,过滤出文本中符合要求…

目录

一、grep

1、参数:

2、示例:

3、grep 正则匹配示例

二、sed

示例:

三、awk

一、语法:

二、常用参数

 三、示例

四、条件与循环语句

五、awk调用函数


1、grep:过滤文本,过滤出文本中符合要求的行

2、sed:修改文本,对文本中的行增,删,改,查

3、awk:处理文本,文本中的行和列进行处理

grep 经常与sed、awk合用

grep、sed、awk、经常与sort、uniq、wc等命令一起使用

文本三剑客支持正则表达式,因此学习之前建议先学一下正则表达式

一、grep

        作用:文本搜索工具,根据用户指定的“模式(过滤条件)”对目标文本逐行进行匹配检查,打印匹配到的行。

1、参数:

-i:忽略大小写
-n:显示行号
-c:显示行数
-e:支持基础的正则表达式 多条件过滤 or  and 
-E:支持扩展的
-v:反转查找,输出与模式不相符的行 
-r:递归搜索所有文件
-d:过滤文件
-o:只显示匹配的内容
-A: 找到匹配行以及后几行 比如-A2(后两行)-A5(后5行)
-B:输出匹配行以及前几行 比如:-B2(前两行) -B5(前5行)
-C:既要显示前几行 又要显示后几行 比如:-C5(当前行的前后5行)
-a:不要忽略二进制数据
-l:列出所包含的文件
-L:列出不包含的文件

2、示例:

[root@k8s-lb-backup tmp]# cat grepdemo.txt 
hello word
Hi wuz\haobo
hello "hahaha" hehehe
L%ala'l'a
123/45/61、过滤 h 开头的行,忽略大小写:-i、显示行号 -n[root@k8s-lb-backup tmp]# grep '^h' -i -n grepdemo.txt 1:hello word2:Hi wuzhaobo3:hello hahaha hehehe2、使用正则表达式的转义字符,过滤有双引号的行,使用单引号 '' 或者转义符 \ 或者使用 -F[root@k8s-lb-backup tmp]# grep '"' grepdemo.txt hello "hahaha" hehehe[root@k8s-lb-backup tmp]# grep \" grepdemo.txt hello "hahaha" hehehe[root@k8s-lb-backup tmp]# grep '/' grepdemo.txt 123/45/6[root@k8s-lb-backup tmp]# grep '\\' grepdemo.txt Hi wuz\haobo[root@k8s-lb-backup tmp]# grep -F 'z\h' grepdemo.txt Hi wuz\haobo[root@k8s-lb-backup tmp]# grep \'l\' grepdemo.txt L%ala'l'a3、过滤二进制文件 使用 -a 参数[root@k8s-lb-backup tmp]# printf 'hello word' |grep hellohello word[root@k8s-lb-backup tmp]# [root@k8s-lb-backup tmp]# printf 'hello word\0' |grep hello匹配到二进制文件 (标准输入)[root@k8s-lb-backup tmp]# printf 'hello word\0' |grep -a hellohello word4、过滤文件的前两行、后两行、前后各两行[root@k8s-lb-backup tmp]# grep -B2 'hah' grepdemo.txt hello wordHi wuz\hao\bohello "hahaha" hehehe[root@k8s-lb-backup tmp]# grep -A2 'hah' grepdemo.txt hello "hahaha" heheheL%ala'l'a123/45/6[root@k8s-lb-backup tmp]# grep -C2 'hah' grepdemo.txt hello wordHi wuz\hao\bohello "hahaha" heheheL%ala'l'a123/45/65、过条件过滤 使用-e 参数 既包含 hello 也包含 wuz[root@k8s-lb-backup tmp]# grep -i -e 'hello' -e 'wuz' grepdemo.txt hello wordHi wuz\hao\bohello "hahaha" hehehe[root@k8s-lb-backup tmp]# grep -i hello grepdemo.txt |grep hehhello "hahaha" hehehe6、反向查找,ps aux 过滤bash  使用 -v 参数[root@k8s-lb-backup tmp]# ps aux | grep bashroot        739  0.0  0.0 115404   964 ?        S    09:35   0:00 /bin/bash /usr/sbin/ksmtunedroot       1994  0.0  0.0 116332  3064 pts/0    Ss   09:36   0:00 -bashroot     103695  0.0  0.0 112828   988 pts/0    S+   14:09   0:00 grep --color=auto bash[root@k8s-lb-backup tmp]# ps aux | grep bash | grep -v grep | grep -v ksmtunedroot       1994  0.0  0.0 116332  3064 pts/0    Ss   09:36   0:00 -bash7、列出所包含的文件:使用-l参数,列出不包含的文件 使用-L 参数 使用 -r 可以递归过滤目录[root@k8s-lb-backup tmp]# grep -l hello *.txt1.txtgrepdemo.txt[root@k8s-lb-backup tmp]# grep -L hello *.txt8、grep 管道合用[root@k8s-lb-backup tmp]# ps aux | grep bash9、grep 与 wc (统计数量)和uniq(相邻去重)和sort(排序)合用[root@k8s-lb-backup tmp]# echo 'hello world' |wc1(行)       2(个单词)      12(字符)[root@k8s-lb-backup tmp]# echo 'hello wrold' |wc -c 12(直接统计字符)[root@k8s-lb-backup tmp]# echo 'hello wrold' |wc -l1(统计行数)[root@k8s-lb-backup tmp]# echo 'hello wrold' |wc -w2(统计单词)[root@k8s-lb-backup tmp]# grep -i -o hello grepdemo.txt | uniq  (去重)hello [root@k8s-lb-backup tmp]# grep -i -o hello grepdemo.txt | sort -u    排序并去重使用 -u 参数hello10、xargs的使用:格式化输出[root@k8s-lb-backup tmp]# cat 2.txt a b c d e f gh i g k l m no p qr s t u v wx y z[root@k8s-lb-backup tmp]# cat 2.txt | xargsa b c d e f g h i g k l m n o p q r s t u v w x y z[root@k8s-lb-backup tmp]# cat 2.txt | xargs | wc1      26      52[root@k8s-lb-backup tmp]# cat 2.txt | xargs -n 5  每行以5列输出a b c d ef g h i gk l m n op q r s tu v w x yz11、grep 过滤进程 并与awk合用 kill 杀死进程[root@k8s-lb-backup tmp]# ps aux | grep bashroot        762  0.0  0.0 115404   956 ?        S    09:25   0:00 /bin/bash /usr/sbin/ksmtunedroot       1897  0.0  0.0 116332  3032 pts/0    Ss   09:26   0:00 -bashroot       6444  0.0  0.0 112828   988 pts/0    S+   09:38   0:00 grep --color=auto bash[root@k8s-lb-backup tmp]# ps aux | grep bash | grep -v grep | grep -v ksmtuned root       1897  0.0  0.0 116332  3032 pts/0    Ss   09:26   0:00 -bash[root@k8s-lb-backup tmp]# ps aux | grep bash | grep -v grep | grep -v ksmtuned | awk '{print $2}'1897[root@k8s-lb-backup tmp]# ps aux | grep bash | grep -v grep | grep -v ksmtuned | awk '{print "kill -9" $2} | sh[root@k8s-lb-backup tmp]# kill -9 `ps aux | grep bash | grep -v grep | grep -v ksmtuned | awk '{print $2}'`12、grep 与 sed 合用,查找本机IP地址先[root@k8s-lb-backup tmp]# ifconfig   在一层一层过滤 [root@k8s-lb-backup tmp]# ifconfig ens33[root@k8s-lb-backup tmp]# ifconfig ens33 | grep inetinet 192.168.134.141  netmask 255.255.255.0  broadcast 192.168.134.255inet6 fe80::e8e1:227e:c151:d3b6  prefixlen 64  scopeid 0x20<link>[root@k8s-lb-backup tmp]# ifconfig ens33 | grep inet | grep -v inet6inet 192.168.134.141  netmask 255.255.255.0  broadcast 192.168.134.255# 把inet之前的替换成空[root@k8s-lb-backup tmp]# ifconfig ens33 | grep inet | grep -v inet6 | sed 's/^.*inet//g'192.168.134.141  netmask 255.255.255.0  broadcast 192.168.134.255#再把netmask之后的替换成空[root@k8s-lb-backup tmp]# ifconfig ens33 | grep inet | grep -v inet6 | sed 's/^.*inet//g' | sed 's/netmask.*$//g'192.168.134.141

3、grep 正则匹配示例

1、匹配以 'he' 开头的行
[root@k8s-lb-backup tmp]# grep ^he grepdemo.txt 
hello word
hello "hahaha" hehehe2、匹配以'6'结尾的行
[root@k8s-lb-backup tmp]# grep 6$ grepdemo.txt 
123/45/63、匹配一个非换行字符 使用  . .表示任意字符
[root@k8s-lb-backup tmp]# grep w.rd grepdemo.txt 
hello word4、匹配前一个字符0次或者1次以上
[root@k8s-lb-backup tmp]# grep hel* grepdemo.txt 
hello word
hello "hahaha" hehehe5、匹配任意字符
[root@k8s-lb-backup tmp]# cat grepdemo.txt 
hello word
Hi wuz\hao\bo
hello "hahaha" hehehe
L%ala'l'a
mysqla
mysqlb
mysqlA
mysqlB
mysql3
mysql5[root@k8s-lb-backup tmp]# grep mysql[a-zA-Z0-9] grepdemo.txt 
mysqla
mysqlb
mysqlA
mysqlB
mysql3
mysql56、某一行以wo开头 和以rd结尾的字符
[root@k8s-lb-backup tmp]# grep '\<wo' grepdemo.txt 
hello word
[root@k8s-lb-backup tmp]# grep 'rd\>' grepdemo.txt 
hello word

二、sed

        sed 是对文本文件中的某一行进行增删改查等操作,尝尝使用sed对文件的指定内容进行批量替换。

语法:
sed [options] 'asd [flags]' filename
命令参数
-f:后面跟一个文本文件,表示将sed的动作卸载一个文件内
-i:直接修改文件内容,sed加上此参数后对文件的修改会生效
-r:支持扩展正则表达式 
-n:只打印匹配到的行,经常与 -p 一起使用
-e:逻辑和 默认选项
sed 常用的内部命令:d:删除匹配的行,并立即启用下一轮循环p:打印当前模式空间内容,追加到默认输出之后a:在指定行后面追加文本,支持使用\n实现多行追加i:在行前面插入文本,支持使用\n实现多行追加c:替换行为单行或多行文本,支持使用\n实现多行追加w:保存模式匹配的行至指定文件r:读取指定文件的文本至模式空间中匹配到的行后=:为模式空间中的行打印行号!:模式空间中匹配行取反处理s///:查找替换,支持使用其它分隔符,如:s@@@,s###;加g表示行内全局替换;在替换时,可以加一下命令,实现大小写转换\l:把下个字符转换成小写。\L:把replacement字母转换成小写,直到\U或\E出现。\u:把下个字符转换成大写。\U:把replacement字母转换成大写,直到\L或\E出现。\E:停止以\L或\U开始的大小写转换
flags:数字:表示新文本替换的模式g:全局  全部p:表示打印原始的内容w filename :表示将替换的结果写入文件
示例:
sed -e '1s/test/trial/g' test.txt
1:表示 test.txt 的第一行
s:表示 替换
test 是原内容
trial 是替换成的内容
g 整行 替换

示例:

一、替换
[root@k8s-lb-backup tmp]# cat seddemo.txt 
This is a test of the trial script.
This is the second test of the trial script.1、将文本中第一行的 test 替换成 trial,并打印出来,但是不会修改文件内容,如果要修改文件内容 加上 -i 参数[root@k8s-lb-backup tmp]# sed -e '1s/test/trial/g' seddemo.txt This is a trial of the trial script.This is the second test of the trial script.2、全局替换并写入文件 [root@k8s-lb-backup tmp]# sed -i 's/test/trial/g' seddemo.txt3、把第二行的第一个替换[root@k8s-lb-backup tmp]# sed '2s/test/asd/1' seddemo.txt This is a trial of the trial script.This is the second asd of the trial script.二、删除(d)和添加(a,i)
1、删除所有[root@k8s-lb-backup tmp]# sed 'd' seddemo.txt 2、删除1行[root@k8s-lb-backup tmp]# sed '1d' seddemo.txt This is the second test of the trial script.3、删除1-2行[root@k8s-lb-backup tmp]# sed '1,2d' seddemo.txt 4、删除2-4行[root@k8s-lb-backup tmp]# sed '2,4d' seddemo.txt5、在第2行前面插入[root@k8s-lb-backup tmp]# sed '2i my name is wuzhaobo' seddemo.txt This is a trial of the trial script.my name is wuzhaoboThis is the second test of the trial script.6、在第2行后面插入[root@k8s-lb-backup tmp]# sed '2a my name is wuzhaobo' seddemo.txt This is a trial of the trial script.This is the second test of the trial script.my name is wuzhaobo7、在第一行前面插入2行[root@k8s-lb-backup tmp]# sed '1i my name is wuzhaobo.\nthis is two hang' seddemo.txt my name is wuzhaobo.this is two hangThis is a trial of the trial script.This is the second test of the trial script.三、sed 替换 c 参数
1、把第二行替换[root@k8s-lb-backup tmp]# sed '2c this is line number 2.' seddemo.txt This is a trial of the trial script.this is line number 2.四、sed 转换 y 参数
1、把文件里的a转换成大写A 参数是一一  对应的。[root@k8s-lb-backup tmp]# sed 'y/a/A/' seddemo.txt This is A triAl of the triAl script.This is the second test of the triAl script.[root@k8s-lb-backup tmp]# echo 'this is 1' | sed 'y/123/456/'this is 4五、sed p 打印命令
[root@k8s-lb-master tmp]# vim demo
aaa
bbbb
AABBCCDD
1、只打印匹配到的行[root@k8s-lb-master tmp]# sed -n "/aaa/p" demo aaa
2、打印第2行[root@k8s-lb-master tmp]# sed -n "2p" demo Bbbb
3、先把包含3的这一行打印出来,然后在把包含3的这一行中的bbbb替换成1111 ,在打印出来[root@k8s-lb-backup tmp]# sed -n '/3/{> p> s/bbbb/1111/p> }' seddemo.txtbbbb311113六、sed q 退出脚本
1、查找文件中 aaa 这一行 ,并把aaa替换成111,然后退出。[root@k8s-lb-backup tmp]# sed '/aaa/{s/aaa/111/;q}' seddemo.txt 111
把TXT中的h1、h2、h3加上尖括号
[root@k8s-lb-backup tmp]# cat test.txt 
<html>
<title>First Web</title>
<body>
h1Hello1h1
h2Hello2h2
h3hello3h3
</body>
</html>
1、
[root@k8s-lb-backup tmp]# sed '{s/h[0-9]/\<&\>/1;s/h[0-9]/\<\/&\>/2}' test.txt 
<html>
<title>First Web</title>
<body>
<h1>Hello1</h1>
<h2>Hello2</h2>
<h3>hello3</h3>
</body>
</html>
2、或者,把/h[0-9] 公共的 提到前边
[root@k8s-lb-backup tmp]# sed '/h[0-9]/{s//\<&\>/1;s//\<\/&\>/2}' test.txt 
<html>
<title>First Web</title>
<body>
<h1>Hello1</h1>
<h2>Hello2</h2>
<h3>hello3</h3>
</body>
</html>
讲解:使用替换的放是 s/a/b/1:第一次把a替换成b,多条命令用;隔开,&表示:当前匹配到的内容。2:表示发生在第二个匹配位置
3、-或者使用调用脚本参数 -f 来执行
[root@k8s-lb-backup tmp]# cat a.sh 
/h[0-9]/{s//\<&\>/1s//\<\/&\>/2
}
[root@k8s-lb-backup tmp]# sed -f a.sh test.txt 
<html>
<title>First Web</title>
<body>
<h1>Hello1</h1>
<h2>Hello2</h2>
<h3>hello3</h3>
</body>
</html>

三、awk

AWK是一种编程语言,用于在linux下对文本和数据进行处理。可以处理每一行的每一列

一、语法:

awk 'BEGIN {commands;……} pattern {commands;……} END {commands}' filename
- BEGIN:处理数据前执行的命令
- END:处理数据后执行的命令
- pattern:模式,每一行都执行的命令
- BEGIN和END里的命令只是执行一次
- pattern:里的命令会匹配每一行去处理

二、常用参数

-F fs:fs指定输入分隔符,fs可以是字符串或正则表达式,如-F: 默认使用 空格
-v var=value:赋值一个用户定义变量,将外部变量传递给awk
-f scripfile:从脚本文件中读取awk命令内置变量:FS :输入字段分隔符,默认为空白字符OFS :输出字段分隔符,默认为空白字符RS :输入记录分隔符,指定输入时的换行符,原换行符仍有效ORS :输出记录分隔符,输出时用指定符号代替换行符NF :字段数量,共有多少字段, $NF引用最后一列,$(NF-1)引用倒数第2列NR :行号,后可跟多个文件,第二个文件行号继续从第一个文件最后行号开始FNR :各文件分别计数, 行号,后跟一个文件和NR一样,跟多个文件,第二个文件行号从1开始FILENAME :当前文件名ARGC :命令行参数的个数ARGV :数组,保存的是命令行所给定的各参数,查看参数
操作符:算数操作符:x+y, x-y, x*y, x/y, x^y, x%y-x:  转换为负数+x:  转换为数值比较操作符:==, !=, >, >=, <, <=模式匹配符:~ :左边是否和右边匹配包含 !~ :不包含逻辑操作符:与&& ,或|| ,非!函数调用: function_name(argu1, argu2, ...)条件表达式(三目表达式):selector?if-true-expression:if-false-expression注释:先判断selector,如果符合执行 ? 后的操作;否则执行 : 后的操作

 三、示例

创建awkdemo目录,准备两个测试文件
[root@k8s-lb-backup awkdemo]# cp /etc/passwd ./
[root@k8s-lb-backup awkdemo]# ps aux > test.txt 1、打印每一行 $:代表是行 $0:表示所有行 $1:表示第一个字段的值 $2:表示第二个字段的值,$NF:表示最后一个字段的值 $(NF-1):表示倒数第二个字段的值
[root@k8s-lb-backup awkdemo]# awk '{print $0}' test.txt2、打印第一列 $1
[root@k8s-lb-backup awkdemo]# awk '{print $1}' test.txt3、打印文件前5行 NR<5[root@k8s-lb-backup awkdemo]# awk 'NR<5' test.txt USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMANDroot          1  0.0  0.1 125396  3912 ?        Ss   09:14   0:01 /usr/lib/syroot          2  0.0  0.0      0     0 ?        S    09:14   0:00 [kthreadd]root          3  0.0  0.0      0     0 ?        S    09:14   0:00 [ksoftirqd/0]打印文件前5行,如果第一个文件行数不够 就从第二个开始[root@k8s-lb-backup awkdemo]# awk 'NR<5' test1.txt passwd USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMANDroot          3  0.0  0.0      0     0 ?        S    09:14   0:00 [ksoftirqd/0]root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologin4、打印最后一列字段的值、和倒数第二行的值 $NF $(NF-1)[root@k8s-lb-backup awkdemo]# awk '{print $NF}' test.txt[root@k8s-lb-backup awkdemo]# awk '{print $(NF-1)}' test.txt5、指定分隔符,并打印第一个字段的值 -F ':'[root@k8s-lb-backup awkdemo]# awk -F ':' '{print $1}' passwd 6、指定分隔符,并打印包含job的行,或者某个值[root@k8s-lb-backup awkdemo]# awk -F : '/job/{print $0}' passwd job:x:1000:1000:job:/home/job:/bin/bash7、begin 和 end 的使用,以冒号分割,先打印 hello 在打印第一列的值,每一行+1,最后打印一共多少行,和输出 goodbye[root@k8s-lb-backup awkdemo]# awk -F : 'BEGIN{ print "hello" }{ print $1;i+=1 } END { print i;print "goodbye"}' passwd 或者从脚本中执行   -f[root@k8s-lb-backup awkdemo]# vim a.awkBEGIN{FS=":"; print "hello" }{ print $1;i+=1 }END { print i;print "goodbye"}[root@k8s-lb-backup awkdemo]# awk -f a.awk passwd   8、添加条件,比如查找 passwd 中 pid>uid的行,并打印[root@k8s-lb-backup awkdemo]# awk -F: '$4 > $3 {print $0}' passwd二、操作符示例
1、查询以dev开头的磁盘信息 匹配使用 ~ 符号[root@k8s-lb-backup awkdemo]# df -h | awk '$0 ~ /^\/dev/'/dev/mapper/centos-root   36G  3.8G   32G   11% //dev/sda1               1014M  179M  836M   18% /boot2、只打印磁盘名和使用状况 使用 $ 和 NF过滤[root@k8s-lb-backup awkdemo]# df -h | awk '$0 ~ /^\/dev/{print $1 "-----"$(NF-1)}'/dev/mapper/centos-root-----11%/dev/sda1-----18%3、查找磁盘大于15%的[root@k8s-lb-backup awkdemo]# df -h | awk '$0 ~ /^\/dev/{print $1 "="$(NF-1)}' | awk -F= '$2 > 15'/dev/sda1=18%三、逻辑操作符 并且&& 或|| 非!
1、查看passwd 中第三列的值 大于10 并且小于1000 的值[root@k8s-lb-backup awkdemo]# awk -F : '$3 > 10 && $3 < 1000 { print $3 }' passwd 2、查看passwd 中第三列的值 大于10 或者小于1000 的值[root@k8s-lb-backup awkdemo]# awk -F : '$3 > 10 || $3 < 1000 { print $3 }' passwd 3、查看passwd 中第三列的值 不等于1000 的值[root@k8s-lb-backup awkdemo]# awk -F : '$3 !=1000 { print $3 }' passwd 4、查看第四列之和[root@k8s-lb-backup awkdemo]# awk -F : '{ sum+=$4 } END {print sum}' passwd 76412
5、查看系统 CPU和内存和[root@k8s-lb-backup awkdemo]# ps -aux | grep -v USER | awk '{ cpu+=$3;mem+=$4 } END { print cpu;print mem }'08.3四、三目表达式
[root@k8s-lb-backup awkdemo]# awk -F : '{ $3 >= 1000 ? usertype="common user" : usertype="sysadmin user"; print usertype,$1,$3}' passwd

四、条件与循环语句

一、控制语句if-else语法
if(condition){statement;…}[elsestatement]  双分支
if(condition1){statement1}else if(condition2){statement2}else{statement3}  多分支
示例:对passwd 判断 当$3 的UID 当UID=0时,就是超级用户,当UID大于1 小于等于999,就是系统用户,其余的就是普通用户[root@k8s-lb-backup awkdemo]# vim a.awkBEGIN{FS=":"}{if ($3==0){print $1 "is super user";} else if($3>1 && $3<=999 ){print $1 "is system user";}else{print $1 "is common user";}}[root@k8s-lb-backup awkdemo]# awk -f a.awk passwd
2、每隔5行打印分隔符,就是5的倍数 使用NR%5==0
[root@k8s-lb-backup awkdemo]# awk '{if (NR%5==0){ print "----------"}print $0 }' passwd 
二、awk 循环语句 for
1、对每一行打印5次[root@k8s-lb-backup awkdemo]# awk -F : '{for (i=5;i>0;i--){print $0} }' passwd 
2、使用for 循环 1至100的和[root@k8s-lb-backup awkdemo]# awk 'BEGIN {sum=0; for(i=1;i<=100;i++){sum+=i}print sum}'5050
3、使用while 循环 1至100的和[root@k8s-lb-backup awkdemo]# awk 'BEGIN {sum=0;i=1; while(i<=100){sum+=i;i++};print sum}'5050
4、使用 do while 循环 1至100的和[root@k8s-lb-backup awkdemo]# awk 'BEGIN {sum=0;i=1; do{sum+=i;i++}while(i<=100);print sum}'5050
5、使用for循环打印99乘法表
[root@k8s-lb-backup awkdemo]# awk 'BEGIN{for(i=1;i<=9;i++){for(j=1;j<=i;j++)printf i "*" j "=" i*j "\t";print("\n")}}'
1*1=12*1=2   2*2=43*1=3   3*2=6   3*3=94*1=4   4*2=8   4*3=12  4*4=165*1=5   5*2=10  5*3=15  5*4=20  5*5=256*1=6   6*2=12  6*3=18  6*4=24  6*5=30  6*6=367*1=7   7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=498*1=8   8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56  8*8=649*1=9   9*2=18  9*3=27  9*4=36  9*5=45  9*6=54  9*7=63  9*8=72  9*9=81
6、while 循环打印99乘法表
[root@k8s-lb-backup awkdemo]# vim t.sh 
BEGIN {i=1while (i<=9){j=1while(j<=i){printf i "*" j "=" i*jprintf "\t"j++}i++print "\n"}
}
[root@k8s-lb-backup awkdemo]# awk -f t.sh 
1*1=12*1=2   2*2=43*1=3   3*2=6   3*3=94*1=4   4*2=8   4*3=12  4*4=165*1=5   5*2=10  5*3=15  5*4=20  5*5=256*1=6   6*2=12  6*3=18  6*4=24  6*5=30  6*6=367*1=7   7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=498*1=8   8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56  8*8=649*1=9   9*2=18  9*3=27  9*4=36  9*5=45  9*6=54  9*7=63  9*8=72  9*9=81

五、awk调用函数

1、截取字符串 使用 substr函数 substr(string,第几位开始,截取几位)
[root@k8s-lb-backup awkdemo]# awk -f t.sh > substr.txt[root@k8s-lb-backup awkdemo]# awk '{if(substr($3,5,2)==12){print $0}}' substr.txt 
4*1=4   4*2=8   4*3=12  4*4=162、使用length 计算字符串长度
[root@k8s-lb-backup awkdemo]# awk '{if(substr($3,5,2)==12){print $0}{print length($3)}}' substr.txt [root@k8s-lb-backup awkdemo]# vim a.sh
function test(t1,t2){t1 > t2 ? var=t1 : var=t2return var
}
BEGIN{a=3;b=2;print test(a,b)
}[root@k8s-lb-backup awkdemo]# awk -f a.sh 
3


文章转载自:
http://mediatise.pwkq.cn
http://inconnected.pwkq.cn
http://idlesse.pwkq.cn
http://coprophagous.pwkq.cn
http://interbellum.pwkq.cn
http://jutka.pwkq.cn
http://kurgan.pwkq.cn
http://ohio.pwkq.cn
http://galloon.pwkq.cn
http://spicula.pwkq.cn
http://aspersion.pwkq.cn
http://xiphosura.pwkq.cn
http://unofficial.pwkq.cn
http://convivialist.pwkq.cn
http://erasistratus.pwkq.cn
http://mouse.pwkq.cn
http://stabilify.pwkq.cn
http://genial.pwkq.cn
http://pinocchio.pwkq.cn
http://diabolist.pwkq.cn
http://silty.pwkq.cn
http://fermentable.pwkq.cn
http://saxophonist.pwkq.cn
http://cryopump.pwkq.cn
http://stadholder.pwkq.cn
http://chartered.pwkq.cn
http://snippy.pwkq.cn
http://myob.pwkq.cn
http://gracioso.pwkq.cn
http://pancreas.pwkq.cn
http://northeast.pwkq.cn
http://crush.pwkq.cn
http://sclerodermous.pwkq.cn
http://sukiyaki.pwkq.cn
http://scramb.pwkq.cn
http://remorse.pwkq.cn
http://mangy.pwkq.cn
http://deemphasis.pwkq.cn
http://turnpike.pwkq.cn
http://exchangee.pwkq.cn
http://neanthropic.pwkq.cn
http://interpellant.pwkq.cn
http://unimpugned.pwkq.cn
http://auscultation.pwkq.cn
http://tubulate.pwkq.cn
http://cytrel.pwkq.cn
http://pronuclear.pwkq.cn
http://judenhetze.pwkq.cn
http://dyspepsia.pwkq.cn
http://granulation.pwkq.cn
http://nitwit.pwkq.cn
http://bony.pwkq.cn
http://rezident.pwkq.cn
http://manzello.pwkq.cn
http://pursiness.pwkq.cn
http://gsv.pwkq.cn
http://archipelago.pwkq.cn
http://apiary.pwkq.cn
http://imparlance.pwkq.cn
http://ifac.pwkq.cn
http://luteotrophin.pwkq.cn
http://baggage.pwkq.cn
http://sikkim.pwkq.cn
http://eyer.pwkq.cn
http://eelfare.pwkq.cn
http://extasy.pwkq.cn
http://instanton.pwkq.cn
http://theolatry.pwkq.cn
http://corymb.pwkq.cn
http://arcanum.pwkq.cn
http://vociferate.pwkq.cn
http://cope.pwkq.cn
http://pneumogastric.pwkq.cn
http://donatist.pwkq.cn
http://midlothian.pwkq.cn
http://kaftan.pwkq.cn
http://loquat.pwkq.cn
http://pharmacal.pwkq.cn
http://caveator.pwkq.cn
http://achromobacter.pwkq.cn
http://sneezes.pwkq.cn
http://sennight.pwkq.cn
http://pragmatism.pwkq.cn
http://beseech.pwkq.cn
http://drainless.pwkq.cn
http://bound.pwkq.cn
http://gabblement.pwkq.cn
http://extorsion.pwkq.cn
http://roughout.pwkq.cn
http://anyplace.pwkq.cn
http://cobelligerent.pwkq.cn
http://goonery.pwkq.cn
http://speechify.pwkq.cn
http://indigestible.pwkq.cn
http://introductory.pwkq.cn
http://deny.pwkq.cn
http://palawan.pwkq.cn
http://woad.pwkq.cn
http://criminological.pwkq.cn
http://dehortative.pwkq.cn
http://www.dt0577.cn/news/108645.html

相关文章:

  • 做wordpress 主题下载站网站空间租用
  • 网页制作的一般流程有哪些泉州网站建设优化
  • 做网站活动竞价托管外包费用
  • 成人用品网站怎么推广五合一网站建设
  • 做视频播放网站 赚钱百度网盘资源搜索
  • 网站推广外链优化网站平台
  • maka网站如何做电子相册百度平台订单查询
  • 安阳网站建设商祺2022知名品牌营销案例100例
  • 怎么查询二级建造师注册情况seo培训教程
  • 专业网站建设费用报价搭建网站的五大步骤
  • 贸易公司网站制作免费奖励自己的网站
  • 酒店品牌设计网站建设网站监测
  • 潍坊网站建设(首选聚搜网络)seo建站系统
  • 看过的网站做记号完整的品牌推广方案
  • 松原建设工程交易中心网站河北seo技术交流
  • 国外WordPress小说主题seo是什么专业的课程
  • ai效果图网站网站规划
  • 珠海网站建设创意如何设计企业网站
  • 公司做的网站列入什么科目十大接单推广平台
  • 四川现在哪里疫情最严重网站编辑seo
  • 响应式网站定制开发seo研究中心教程
  • 网站目录有什么意义武汉it培训机构排名前十
  • wordpress插件检测seo是否合理广州百度首页优化
  • 出入长沙今天最新通知抖音关键词优化排名靠前
  • 怎么创自己的网站深圳网络营销推广方案
  • 网站建设额网址收录入口
  • 山东网站备案号百度图片识别
  • 电子商务网站建设是学什么申请网站怎么申请
  • 更改host文件把淘宝指向自己做的钓鱼网站seo综合查询工具有什么功能
  • qq刷赞网站如何做分站广州发布紧急通知