awk--awk

AWK语言的最基本功能是在文件或字符串中基于指定规则浏览和抽取信息。AWK抽取信息后,才能进行其他文本操作。完整的AWK脚本通常用来格式化文本文件中的信息。

AWK的三种调用方式:

第一中:awk -F field-separator ‘commands‘ input-file(s)

-F field-separator 是可选的,默认是空格。如果要以:做为域分隔符使用  awk -F: ‘commands‘ input-file

第二种:将所有awk命令写入一个文件,使awk程序可执行,然后用awk命令解释器作为脚本的行首,通过键入脚本名来调用。

第三种:将所有的awk命令写入一个文件,然后调用该文件:awk -f awk-script-file input-files(s)

awk的模式和动作

模式部分决定动作语句何时触发及触发事件。模式可以是任何条件语句或复合语句或正则表达式,模式包括两个字段BEGIN和END,BEGIN设置计数和打印头。

BEGIN语句使用在任何文本浏览动作之前,之后文本浏览动作依据输入文件开始执行。E N D语句用来在a w k完成文本浏览动作后打印输出文本总数和结尾状态标志

sed 打印默认的匹配行

sed -n

时间: 2024-08-15 03:06:41

awk--awk的相关文章

Linux文本处理三剑客之GNU awk的使用

awk: Aho, Weinberger, Kernighan,报告生成器,格式化文本输出 有多种版本:New awk(nawk),GNU awk(gawk) gawk –模式扫描和处理语言 基本用法: awk[options] 'program' var=value file- awk[options] -f programfile var=value file- awk[options] 'BEGIN{ action;... } pattern{ action;... } END{ acti

awk 变量

awk 变量 1,-F 指明输入时用到的字段分隔符 awk -F: '{print $1}'/etc/passwd 使用冒号作为分隔符,打印passwd的第一行 2,使用print打印字符串 awk -F: '{print "hello,awk"}' /etc/passwd 注意:passwd文件有多少行,就打印多少行hello,awkhello,awk 的双引号不能去掉,用作表示hello,awk是字符串大括号外面使用单引号 awk -F: '{print "hello,a

十七. 正则以及grep ,sed,awk的简单应用

一.正则表达式:/ / grep,sed,awk 都能解释正则表达式 正则表达式:把一些特殊符号组合到一起描述字符和字符串的方法.^ 以什么开头 grep '^root' /etc/passwd$ 以什么结尾 如能登入系统的所有用 grep 'bash$'/etc/passwd. 任意一个字符 grep '^b.n' /etc/passwd 过滤取到bin的.* 所有字符* 代表前面的字符有0个或者无穷个 grep 'b*' /+ 必须用egrep 或 egrep -E 'ab+'表示前面的字符

awk之提取联系人邮箱(用到for循环、gensub等)

[问题描述] 从以下文件中提取联系人邮箱地址,内容如下: <[email protected]>, 李俊清 <[email protected]>, 任翔 <[email protected]>, 李杨柳 <[email protected]>, 孟津 <[email protected]>, 王立光 <[email protected]> [解决办法] 1.awk $awk '{for(i=1;i<=NF;i++) if($i

awk使用案例

1.模仿wc的行为,统计一个文本文件的文件的字符数.行数.单词数. awk '{numOfChar+=length($0);numOfWord+=NF}END{print numOfChar" " numOfWord" "NR }' file 2.上面的例子中有个问题,统计的字符数中包含空格,那么不包含空格的字符数要怎么算? awk '{for (i=1; i<=NF; i++) numOfChar+=length($i)}END{print numOfCha

使用awk统计字段重复实践

awk awk是一种规格化文件的分析工具, 主要处理对象类似数据库导出的条目文本文件, 其中一行,就对应一个记录,每个记录包含若干个字段. 类似这种文本: [[email protected] ~]# last -n 5 <==仅取出前五行 root pts/1 192.168.1.100 Tue Feb 10 11:21 still logged in root pts/1 192.168.1.100 Tue Feb 10 00:46 - 02:28 (01:41) root pts/1 19

linux下的文本处理命令sed&amp;awk&amp;grep

Sedsed 是个精简的.非交互式的编辑器.他能执行和编辑vi和emacs相同的编辑任务.sed编辑器不提供交互使用方式:只能在命令行输入编辑命令.指定文件名,然后在屏幕上察看输出.sed编辑器没有破坏性.他不会修改文件,除非用shell重定向来保存输出结果.缺省情况下,所以的输出都被打印到屏幕上.sed 编辑器在shell脚本中非常有用,因为在shell脚本中使用像vi或emacs这类交互式编辑器,需求脚本用户精通该编辑器,而且还会导致用户对打开 的 文件做出不必的修改.如果需要执行多项编辑任

linux awk详解与应用

文章来自于本人个人博客: linux awk详解与应用 1.awk awk是一个强大的文本分析工具,它可以通过分析文本来生成一个数据报告.它的原理就是读取每行的输入,然后按照分隔符切分(默认是空格),再进行定制计算. awk '{print $1}' /etc/passwd   #打印出passwd文件的所有行的第一列 这是awk的基础语法,在awk中$n代表列数,即$1--第一列,$2---第二列....,但是$0代表整行 接下来我们按照指定的分隔符打印数据: awk -F ':' '{pri

awk(四)高级篇

前面三篇总结了awk的基本结构,常用系统变量,流程控制,和函数. 这一篇总结下awk剩余的一些话题. getline函数 getline函数是从输入,标准输入,文件或管道读取另一行 getline和next有点类似,它俩都导致下一个输入行被读取.不同的,next语句将控制返回到脚本的顶部.而getline得到新的一行,但没有改变脚本的控制. next类似于sed中命令d. 而getline函数则类似于sed中命令N,不过和N还是有点小区别的. sed中的N命令,是读取新行,旧行和新行之间用换行符

awk(三)函数

函数是一个独立计算的过程,它接收一些参数并返回一些值 awk有很多内置函数,分为:算术函数和字符串函数 算术函数 cos(x) 返回x的余弦(x为弧度) exp(x) 返回e的x次幂 int(x) 返回x的整数部分的值 log(x) 返回x的自然对数(以e为底) sin(x) 返回x的正弦(x为弧度) sqrt(x) 返回x atan2(y,x) 返回y/x的反正切,其值在-180度到180度之间 rand() 返回随机数r,其中0<=r<1 srand(x) 建立rand()的新的种子数,如