awk正则表达式介绍
- 格式:docx
- 大小:29.77 KB
- 文档页数:10
Linux三剑客详解(grep、sed、awk)前⾔ 在Linux的学习和使⽤当中,⼈们常常提到的三剑客其实指的是grep、sed、awk这三个命令的简称,当熟练掌握了这⼏个命令,可以极⼤的提升运维效率。
在讲到这三个命令之前,我们得先了解什么是正则表达式,正则表达式是学习三剑客的基础和前提。
⼀、正则表达式 正则表达式:Regular Expression,描述了⼀种字符串匹配的模式(pattern),可以⽤来检查⼀个串是否含有某种⼦串、将匹配的⼦串替换或者从某个串中取出复核某个条件的⼦串等。
标准正则表达式:元字符:. 匹配任意单个字符[] 匹配指定范围内的任意单个字符[^] 匹配指定范围外的任意单个字符字符集合:[:alnum:] 代表英⽂⼤⼩写字符及数字,亦即 0~9、A~Z、a~z[:alpha:] 代表任何英⽂⼤⼩写字符,亦即 A~Z、a~z[:blank:] 代表空格键与[tab]按键两者[:cntrl:] 代表键盘上⾯的控制按键,包括CR、LF、Tab、Del等[:digit:] 代表数字⽽已,即 0~9[:graph:] 除了空格符(空格键与[tab]按键)外的其他所有按键[:lower:] 代表⼩写字符,即 a~z[:print:] 代表任何可以被打印出来的字符[:punct:] 代表标点符号(punctuation symbol),亦即 : " ' ? ! ; : # $[:upper:] 代表⼤写字符,即 A~Z[:space:] 代表会产⽣空⽩的字符,包括空格键、[tab]、CR等[:xdigit:] 代表⼗六进制的数字类型,因此包括 0~9、A~F、a~f 的数字与字符匹配次数(贪婪模式):* 匹配其前⾯的字符任意次?匹配其前⾯的字符0次或者1次+ 匹配其前⾯的字符⾄少1次.* 任意长度的任意字符位置锚定:^ 锚定⾏⾸,此字符后⾯的任意内容必须出现在⾏⾸$ 锚定⾏尾,此字符后⾯的任意内容必须出现在⾏尾^$ 空⽩⾏因为在Linux系统中shell解释器的特殊处理,某些元字符在linux下具有展开式等特殊含义,在实际使⽤过程中,我们需要添加 / 对其进⾏转义。
linux awk正则表达式正则表达式是一种文本匹配的语言,用于查找、替换和提取文本中的信息。
在Linux系统中,awk是一种流程文本处理器,使用正则表达式能够方便地进行文本处理。
一般来说,awk正则表达式的语法和其他语言的正则表达式相似,主要是由一些元字符和普通字符组成的,其中元字符有特殊的含义,可以用来匹配特殊的文本模式,普通字符则表示直接匹配该字符本身。
以下是常用的元字符和它们的含义:1. .(点):匹配任意单个字符。
例如,a.c匹配"abc","adc","aec"等。
2. ^:匹配输入字符串的开始位置,或者在多行模式下匹配一行的开始位置。
例如,^a匹配以"a"开头的字符串,包括"a","abc"等。
3. $:匹配输入字符串的结束位置,或者在多行模式下匹配一行的结束位置。
例如,a$匹配以"a"结尾的字符串,包括"a","ba"等。
4. [ ]:匹配括号内的任意一个字符。
例如,[a-z]匹配任意小写字母,[0-9]匹配任意数字。
5. [^ ]:匹配括号内除了指定字符以外的任意一个字符。
例如,[^abc]匹配除了"a"、"b"、"c"以外的任意一个字符。
6. *:匹配前面的字符0次或多次。
例如,a*匹配空字符串、"a"、"aa"、"aaa"等。
7. +:匹配前面的字符1次或多次。
例如,a+匹配"a"、"aa"、"aaa"等。
8. ?:匹配前面的字符0次或1次。
例如,a?匹配空字符串、"a"。
9. {m,n}:匹配前面的字符至少m次,至多n次。
Shell脚本编写的高级技巧利用正则表达式进行字符串匹配Shell脚本编写的高级技巧:利用正则表达式进行字符串匹配Shell脚本是一种强大的脚本语言,广泛用于自动化任务、数据处理和系统管理等方面。
在Shell脚本编写中,利用正则表达式进行字符串匹配是一项重要的高级技巧。
本文将介绍如何在Shell脚本中运用正则表达式实现字符串匹配及相关应用。
一、正则表达式简介正则表达式是一种用于在文本中查找、匹配和操作字符串的强大工具。
通过使用正则表达式,我们可以实现高效、灵活和复杂的字符串匹配。
正则表达式由一些特殊字符和普通字符组成,其中特殊字符具有特殊的含义。
我们可以根据需要使用这些特殊字符来定义我们想要匹配的模式,然后将其应用于Shell脚本中。
二、使用正则表达式进行字符串匹配在Shell脚本中,我们可以使用不同的命令和工具来实现正则表达式的字符串匹配。
这里我们将介绍三种常用的方式:grep命令、sed命令和awk命令。
1. grep命令grep命令是一种强大的文本搜索工具,它可以根据正则表达式来在文件中搜索指定的模式,并将匹配的行输出。
例如,我们可以使用以下命令来在文件中查找包含"hello"的行:```shellgrep "hello" file.txt```2. sed命令sed命令是一种流式文本编辑器,它可以对输入的文本按照指定的规则进行处理和转换。
我们可以使用正则表达式来指定匹配的模式,并使用sed命令进行相应的操作。
例如,我们可以使用以下命令将文件中的所有"hello"替换为"world":```shellsed 's/hello/world/g' file.txt```3. awk命令awk命令是一种文本处理工具,它可以对输入的文本按照指定的字段进行处理和转换。
我们可以使用正则表达式来定义字段的匹配模式,并使用awk命令进行相应的操作。
Linux命令高级技巧使用awk命令进行文本处理和数据提取Linux命令高级技巧:使用awk命令进行文本处理和数据提取在Linux系统中,awk是一种强大的文本处理工具,它可以用于处理数据文件、生成报表以及提取文本中的特定信息。
awk命令的灵活和高效使得它成为Linux用户必备的工具之一。
本文将介绍awk命令的基本用法和高级技巧,帮助读者更好地利用awk进行文本处理和数据提取。
1. awk命令基本语法和工作原理awk命令的基本语法为:```awk 'pattern { action }' filename```其中,pattern是用于匹配文本的模式,action是在匹配成功后执行的操作。
awk处理文本的方式是逐行读取文件,按照指定的模式进行匹配,并执行相应的操作。
操作可以是打印、计算、替换等。
下面是一个简单的示例:```awk '/keyword/ { print $1 }' filename```该命令表示在filename文件中匹配包含关键字"keyword"的行,并打印每行的第一个字段。
2. 使用awk命令进行文本处理awk命令在文本处理方面有着广泛的应用。
它可以对文本进行排序、过滤、计算和格式化等操作。
下面介绍几个常用的awk命令技巧。
2.1 文本过滤和匹配通过awk命令可以方便地对文本进行过滤和匹配。
例如,要过滤出包含特定关键字的行,可以使用如下命令:```awk '/keyword/' filename```该命令将输出filename文件中所有包含关键字"keyword"的行。
2.2 提取字段awk命令可以提取文本中的指定字段。
字段之间以空格或制表符分隔,默认情况下,awk将每行数据的第一个字段标记为$1,第二个字段标记为$2,依此类推。
例如,要提取文件中的第二个字段,可以使用如下命令:```awk '{ print $2 }' filename```该命令将输出filename文件中每一行的第二个字段。
Sed (2)sed常用选择项 (2)语法正则表达式 (3)替换 (6)删除 (7)追加插入更改 (7)列表 (7)转换 (7)打印 (7)打印行号 (8)下一步 (8)读和写文件 (8)退出 (8)高级命令 (8)awk (14)分隔符 (14)表达式字符链接 (14)系统内置变量 (16)格式化输出 (17)使用shell 变量 (18)流控制 (18)数组 (20)测试数组成员 (21)函数 (22)高级讲解 (24)域 (24)变量 (26)特殊模式begin end (27)命令参数 (28)Sed 命令sed常用选择项sed/awk +[参数选项]+ “语法“+ 文件名-n 关闭输出到标准输出-e 执行多条sed命令;(或者用“;”间隔多条指令)-f 从命令脚本读如命令Sed –f sed_srcript_file input_filesed/awk的特点均是读入文件的一行做为输入,应用于所有的命令,再读入下一行执行操作:1 从输入文件中读入一行2 为改行做一个拷贝3 在该行上执行“语法”动作4 为下一行执行第一步动作语法正则表达式/pattern/actionPattern 正则表达式Action 执行动作执行过程:1 顺序收索每个模式pattern 直到发现一个匹配2 发现匹配后执行action 动作3 执行完成后,到达下一个action ,执行第一步4 当所有模式试过一遍后,读取下一行。
在第四步前,sed显示被改动的记录,awk必须手动显示改动的内容,Sed可以使用的动作包括编辑单个字母的命令,awk动作通常是一个编程语句集合。
Pattern 包括普通字符和通配符。
. 点号* 星号在此处意思是匹配前面字符出现0次以上[chars] 匹配chars中的任何一个字符,chars是一个字符序列。
可用“-”字符指出字符范围,“^”是chars中的第一个字符,则匹配未在chars中指定的字符^ 匹配一行的开始$ 匹配一行的末\ 转义符号[…] 匹配括弧里面的任意字符,第一字符如果是^表示不包含所列示字符,如果里面包含‟[ ]‟符号时候,表示同时包含‟[]‟,如果是任选之一应写成‟][‟\{n, m\} 匹配前面的匹配n-m次;\{n\}匹配前面的模式n次Egrep 和awk 可以使用的特殊字符…\<‟…\>‟+ 匹配前面的正则表达式1次以上? 匹配前面的正则表达式0次以上| 匹配前面或者后的表达式( ) 对正则表达式分组,设置匹配集合Sed是先对第一个行应用所有编辑命令,在对第二个行。
Mac命令行高级技巧如何使用正则表达式进行搜索和替换在Mac系统中,命令行界面是进行高级操作和自定义设置的一个重要工具。
可以通过命令行界面使用正则表达式进行搜索和替换,这在处理文本文件时非常有用。
下面将介绍一些Mac命令行中使用正则表达式进行搜索和替换的高级技巧。
一、grep命令grep命令是一个强大的搜索工具,可以使用正则表达式在文件中查找匹配的字符串。
下面是一些常用的grep命令的示例:1. 在文件中查找特定字符串:```shellgrep "pattern" file.txt```其中,pattern是你要搜索的字符串,file.txt是你要在其中进行搜索的文件。
2. 忽略大小写搜索:```shellgrep -i "pattern" file.txt```使用``-i``选项可以忽略搜索时的大小写。
3. 显示匹配的行号:```shellgrep -n "pattern" file.txt```使用``-n``选项可以显示匹配的行号。
4. 显示匹配的上下文:```shellgrep -A 2 -B 2 "pattern" file.txt```使用``-A``选项可以显示匹配的上下文,``2``表示上下各显示两行。
5. 只显示匹配的字符串:```shellgrep -o "pattern" file.txt```使用``-o``选项可以只显示匹配的字符串,而不是整行。
二、sed命令sed命令是一种流编辑器,可以对文件进行逐行处理。
下面是一些常用的sed命令的示例:1. 替换字符串:```shellsed 's/pattern/replacement/g' file.txt```其中,pattern是要被替换的字符串,replacement是替换的字符串,``g``表示全局替换。
linux awk正则表达式正则表达式是一种特殊的语法,用于匹配字符串。
在Linux下,正则表达式非常常用,它可以在grep、sed、awk等命令中使用。
本文将介绍正则表达式在awk命令中的使用方法。
awk是一种强大的文本处理工具,它可以用于分析和处理文件中的数据。
awk命令可以使用正则表达式对文件内容进行匹配,并对匹配到的字符串进行操作。
在awk命令中,正则表达式的语法非常简单,使用起来也非常方便。
下面介绍一些常用的正则表达式语法:1. 基本正则表达式在awk命令中,基本正则表达式采用的是POSIX标准的正则表达式语法。
基本正则表达式可以使用一些特殊字符来匹配文本中的字符串,比如 ^、$、.、*、+、?等。
• ^:匹配行首。
• $:匹配行尾。
• .:匹配任意一个字符。
• *:表示匹配零个或多个前面的字符。
• +:表示匹配一个或多个前面的字符。
• ?:表示匹配零个或一个前面的字符。
比如:awk '/^abc/' file.txt # 匹配以abc开头的行。
awk '/abc$/' file.txt # 匹配以abc结尾的行。
awk '/ab.c/' file.txt # 匹配ab后面跟着任意一个字符后跟着c的行。
awk '/ab*c/' file.txt # 匹配ab后面跟着零个或多个字符后跟着c 的行。
awk '/ab+c/' file.txt # 匹配ab后面跟着一个或多个字符后跟着c的行。
awk '/ab?c/' file.txt # 匹配ab后面跟着零个或一个字符后跟着c 的行。
2. 扩展正则表达式除了基本正则表达式外,awk命令还可以使用扩展正则表达式。
扩展正则表达式是基于POSIX标准的正则表达式语法的扩展版本。
在扩展正则表达式中,使用的特殊字符和基本正则表达式中的有所不同。
比如,扩展正则表达式可以使用 | 来表示或运算,可以使用 () 来分组匹配,可以使用 \{n,m\} 来匹配前面字符的重复次数等。
awk命令详解awk是⼀个强⼤的⽂本分析⼯具,相对于grep的查找,sed的编辑,awk在其对数据分析并⽣成报告时,显得尤为强⼤。
简单来说awk就是把⽂件逐⾏的读⼊,以空格为默认分隔符将每⾏切⽚,切开的部分再进⾏各种分析处理。
使⽤⽅法:awk '{pattern + action}' {filenames}尽管操作可能会很复杂,但语法总是这样,其中 pattern 表⽰ AWK 在数据中查找的内容,⽽ action 是在找到匹配内容时所执⾏的⼀系列命令。
花括号({})不需要在程序中始终出现,但它们⽤于根据特定的模式对⼀系列指令进⾏分组。
pattern就是要表⽰的正则表达式,⽤斜杠括起来。
awk语⾔的最基本功能是在⽂件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进⾏其他⽂本操作。
完整的awk脚本通常⽤来格式化⽂本⽂件中的信息。
通常,awk是以⽂件的⼀⾏为处理单位的。
awk每接收⽂件的⼀⾏,然后执⾏相应的命令,来处理⽂本。
awk程序的报告⽣成能⼒通经常使⽤来从⼤⽂本⽂件⾥提取数据元素并将它们格式化成可读的报告。
最完美的样例是格式化⽇志⽂件。
awk的⽤法awk'BEGIN{ commands } pattern{ commands } END{ commands }'第⼀步:运⾏BEGIN{ commands }语句块中的语句。
第⼆步:从⽂件或标准输⼊(stdin)读取⼀⾏。
然后运⾏pattern{ commands }语句块,它逐⾏扫描⽂件,从第⼀⾏到最后⼀⾏反复这个过程。
直到⽂件所有被读取完成。
第三步:当读⾄输⼊流末尾时。
运⾏END{ commands }语句块。
BEGIN语句块在awk開始从输⼊流中读取⾏之前被运⾏,这是⼀个可选的语句块,⽐⽅变量初始化、打印输出表格的表头等语句通常能够写在BEGIN语句块中。
END语句块在awk从输⼊流中读取全然部的⾏之后即被运⾏。
awk match 动态正则表达式摘要:1.Awk 简介2.动态正则表达式概念3.Awk 匹配动态正则表达式的方法4.动态正则表达式的应用实例5.总结正文:一、Awk 简介Awk 是一种文本处理工具,它可以在Linux、Unix 等系统上使用。
Awk 以其强大的文本处理功能和简洁的语法而著名,尤其适用于处理结构化文本数据。
Awk 可以对文本进行分割、过滤、排序等操作,使得处理大量数据变得轻松简单。
二、动态正则表达式概念动态正则表达式是一种在运行时根据特定条件生成的正则表达式。
与传统的正则表达式不同,动态正则表达式可以根据输入的数据实时调整,从而实现更灵活的匹配。
三、Awk 匹配动态正则表达式的方法在Awk 中,可以使用`match`函数来匹配动态正则表达式。
`match`函数接受三个参数:模式、目标文本和分隔符。
其中,模式就是动态正则表达式,可以通过`/`运算符定义。
以下是一个简单的示例:```awk "{match($0, /[0-9]+/)}" file.txt```在这个示例中,`match`函数尝试匹配输入文本(`$0`)中的数字。
如果匹配成功,它会将匹配到的数字输出。
四、动态正则表达式的应用实例假设我们有一个包含IP 地址的文本文件`ip.txt`,我们希望提取出所有的IP 地址。
可以使用动态正则表达式来实现这个功能:```awk "{match($0, /[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})}" ip.txt```在这个示例中,我们使用动态正则表达式`[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}`来匹配IP 地址。
这个正则表达式会根据输入文本实时调整,确保匹配到有效的IP 地址。
五、总结Awk 作为一种强大的文本处理工具,可以方便地处理结构化文本数据。
awk命令详解简单使用:awk :对于文件中一行行的独处来执行操作。
awk -F :'{print $1,$4}' :使用‘:’来分割这一行,把这一行的第一第四个域打印出来。
详细介绍:AWK命令介绍awk语言的最基本功能是在文件或字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作,完整的awk脚本通常用来格式化文本文件中的信息1.调用awk:第一种命令行方式,如:awk [-Field-separator] 'commands' input-file(s)这里commands是真正的awk命令,[-F域分隔符]是可选的,awk默认使用空格分隔,因此如果要浏览域间有空格的文本,不必指定这个选项,但如果浏览如passwd文件,此文件各域使用冒号作为分隔符,则必须使用-F选项: awk -F : 'commands' input-file第二种,将所有awk命令插入一个文件,并使awk程序可执行,然后用awk命令解释器作为脚本的首行,以便通过键入脚本名称来调用它第三种,将所有awk命令插入一个单独文件,然后调用,如:awk -f awk-script-file input-file-f选项指明在文件awk-script-file的awk脚本,input-file是使用awk进行浏览的文件名2.awk脚本:awk脚本由各种操作和模式组成,根据分隔符(-F选项),默认为空格,读取的内容依次放置到对应的域中,一行一行记录读取,直到文件尾2.1.模式和动作任何awk语句都是由模式和动作组成,在一个awk脚本中可能有许多语句。
模式部分决定动作语句何时触发及触发事件。
动作即对数据进行的操作,如果省去模式部分,动作将时刻保持执行状态模式可以是任何条件语句或复合语句或正则表达式,模式包含两个特殊字段BEGIN和END,使用BEGIN语句设置计数和打印头,BEGIN语句使用在任何文本浏览动作之前,之后文本浏览动作依据输入文件开始执行;END语句用来在awk完成文本浏览动作后打印输出文本总数和结尾状态标志,有动作必须使用{}括起来实际动作在大括号{}内指明,常用来做打印动作,但是还有更长的代码如if和循环looping 语句及循环退出等,如果不指明采取什么动作,awk默认打印出所有浏览出的记录2.2.域和记录:awk执行时,其浏览标记为$1,$2...$n,这种方法称为域标记。
使用$1,$3表示参照第1和第3域,注意这里使用逗号分隔域,使用$0表示使用所有域。
例如:awk '{print $0}' temp.txt > sav.txt表示打印所有域并把结果重定向到sav.txt中awk '{print $0}' temp.txt|tee sav.txt和上例相似,不同的是将在屏幕上显示出来awk '{print $1,$4}' temp.txt只打印出第1和第4域awk 'BEGIN {print "NAME GRADE\n----"} {print $1"\t"$4}' temp.txt 表示打信息头,即输入的内容的第一行前加上"NAME GRADE\n-------------",同时内容以tab分开awk 'BEGIN {print "being"} {print $1} END {print "end"}' temp同时打印信息头和信息尾2.3.条件操作符:<、<=、==、!=、>=、~匹配正则表达式、!~不匹配正则表达式匹配:awk '{if ($4~/ASIMA/) print $0}' temp 表示如果第四个域包含ASIMA,就打印整条精确匹配:awk '$3=="48" {print $0}' temp 只打印第3域等于"48"的记录不匹配: awk '$0 !~ /ASIMA/' temp 打印整条不包含ASIMA的记录不等于: awk '$1 != "asima"' temp小于: awk '{if ($1<$2) print $1 "is smaller"}' temp设置大小写: awk '/[Gg]reen/' temp 打印整条包含Green,或者green的记录任意字符: awk '$1 ~/^...a/' temp 打印第1域中第四个字符是a的记录,符号’^’代表行首,符合’.’代表任意字符或关系匹配: awk '$0~/(abc)|(efg)/' temp 使用|时,语句需要括起来AND与关系: awk '{if ( $1=="a" && $2=="b" ) print $0}' tempOR或关系: awk '{if ($1=="a" || $1=="b") print $0}' temp2.4.awk内置变量:例: awk 'END {print NR}' temp 在最后打印已读记录条数awk '{print NF,NR,$0} END {print FILENAME}' tempawk '{if (NR>0 && $4~/Brown/) print $0}' temp 至少存在一条记录且包含Brown NF的另一用法: echo $PWD | awk -F/ '{print $NF}' 显示当前目录名2.5.awk操作符:在awk中使用操作符,基本表达式可以划分成数字型、字符串型、变量型、域及数组元素设置输入域到变量名:awk '{name=$1;six=$3; if (six=="man") print name " is " six}' temp域值比较操作:awk 'BEGIN {BASE="27"} {if ($4<BASE) print $0}' temp修改数值域取值:(原输入文件不会被改变)awk '{if ($1=="asima") $6=$6-1;print $1,$6,$7}' temp修改文本域:awk '{if ($1=="asima) ($1=="desc");print $1}' temp只显示修改记录:(只显示所需要的,区别上一条命令,注意{})awk '{if ($1=="asima) {$1=="desc";print$1}}' temp创建新的输出域:awk '{$4=$3-$2; print $4}' temp统计列值:awk '(tot+=$3);END {print tot}' temp 会显示每列的内容awk '{(tot+=$3)};END {print tot}' temp 只显示最后的结果文件长度相加:ls -l|awk '/^[^d]/ {print $9"\t"$5} {tot+=$5} END{print "totKB:" tot}'只列出文件名:ls -l|awk '{print $9}' 常规情况文件名是第9域2.6.awk内置字符串函数:gsub(r,s) 在整个$0中用s替代rawk 'gsub(/name/,"xingming") {print $0}' tempgsub(r,s,t) 在整个t中用s替代rindex(s,t) 返回s中字符串t的第一位置awk 'BEGIN {print index("Sunny","ny")}' temp 返回4length(s) 返回s的长度match(s,r) 测试s是否包含匹配r的字符串awk '$1=="J.Lulu" {print match($1,"u")}' temp 返回4split(s,a,fs) 在fs上将s分成序列aawk 'BEGIN {print split("12#345#6789",myarray,"#")"'返回3,同时myarray[1]="12", myarray[2]="345", myarray[3]="6789"sprint(fmt,exp) 返回经fmt格式化后的expsub(r,s) 从$0中最左边最长的子串中用s代替r(只更换第一遇到的匹配字符串)substr(s,p) 返回字符串s中从p开始的后缀部分substr(s,p,n) 返回字符串s中从p开始长度为n的后缀部分2.7.printf函数的使用:字符转换: echo "65" |awk '{printf "%c\n",$0}' 输出Aawk 'BEGIN {printf "%f\n",999}' 输出999.000000格式化输出:awk '{printf "%-15s %s\n",$1,$3}' temp 将第一个域全部左对齐显示2.8.其他awk用法:向一行awk命令传值:awk '{if ($5<AGE) print $0}' AGE=10 tempwho | awk '{if ($1==user) print $1 " are in " $2 ' user=$LOGNAME 使用环境变量awk脚本命令:开头使用 !/bin/awk -f ,如果没有这句话自含脚本将不能执行,例子:!/bin/awk -f# all comment lines must start with a hash '#'# name: student_tot.awk# to call: student_tot.awk grade.txt# prints total and average of club student points# print a header firstBEGIN{print "Student Date Member No. Grade Age Points Max"print "Name Joined Gained Point Available"print"============================================== ==========="}# let's add the scores of points gained(tot+=$6);# finished processing now let's print the total and averagepointEND{print "Club student total points :" totprint "Average Club Student points :" tot/N}2.9.awk数组:awk的循环基本结构For (element in array) print array[element]awk 'BEGIN {record="123#456#789";split(record,myarray,"#")}END { for (i in myarray) {print myarray[i]} }3.0 awk中自定义语句一.条件判断语句(if)if(表达式) #if ( Variable in Array )语句1else语句2格式中"语句1"可以是多个语句,如果你为了方便Unix awk判断也方便你自已阅读,你最好将多个语句用{}括起来。