- 浏览: 149299 次
- 性别:
- 来自: 北京
文章分类
最新评论
1、awk 语法分模式和操作
模式由正则表达式或判别条件真伪的表达式组成,或者2者的组合
默认操作是打印符合表达式要求文本行
例子
awk -F'[ ;,]' '/jom/{print $1,$2,$3}' file
等价awk -F'[ ;,]' '$0 ~ /jom/{print $1,$2,$3}' file
操作是{}中以分号分隔的语句
操作前面可以有模式
同一行的语句由分号分隔,独占一行则有换行符分隔
内部变量
$0 输入文件的每一行
行被空格分隔为单词,每个单词存储在$1--$n的变量中
NR 每行的行号
NF 每行被分隔符分成几个字段
awk -F: 冒号分隔符
awk -F'[ ;/]' 三个分隔符 空格分号斜杠
2、字符串和数字之间的转换
number=35
name="abf"
字符串强转为数字
name + 0
数字强转为字符串 number ""
3、begin模式
必需在对输入文件进行任何操作之前执行,begin通常被用来修改内置变量(OFS、RS、FS等)、为用户自定义变量赋初始值
end模式
awk处理完所有输入行之后处理end模式
4、输入重定向
getline函数用于从标准输入、管道或者文件(非当前处理的文件)中读取输入
# awk 'BEGIN{"date" | getline d;split(d,mon);print mon[2]}'
# May
#awk 'BEGIN{while("ls" | getline d) s[x++]=d} {for(item in s){print s[item] }}'
[root@localhost redis]# awk 'BEGIN{while (getline < "/etc/passwd" >0 )lc++;print lc}'
35
输出重定向
#cat CheckLaunch.log.2012-05-17 | awk -F'[=,]' '$9==2 && $31==1 {print $8,"--"$9,"--"$30,"--"$31,"--"$32,"--"$33 >> "test.log"}'
重定向的文件用双引号括起来
awk中的管道
每次只能打开一个管道,必需关闭才能打开另外一个管道
管道右边的命令行被括在双引号中间
3、数组在awk中称关联数组,下标可以是数字也可以是字符串
模式由正则表达式或判别条件真伪的表达式组成,或者2者的组合
默认操作是打印符合表达式要求文本行
例子
awk -F'[ ;,]' '/jom/{print $1,$2,$3}' file
等价awk -F'[ ;,]' '$0 ~ /jom/{print $1,$2,$3}' file
操作是{}中以分号分隔的语句
操作前面可以有模式
同一行的语句由分号分隔,独占一行则有换行符分隔
内部变量
$0 输入文件的每一行
行被空格分隔为单词,每个单词存储在$1--$n的变量中
NR 每行的行号
NF 每行被分隔符分成几个字段
awk -F: 冒号分隔符
awk -F'[ ;/]' 三个分隔符 空格分号斜杠
2、字符串和数字之间的转换
number=35
name="abf"
字符串强转为数字
name + 0
数字强转为字符串 number ""
3、begin模式
必需在对输入文件进行任何操作之前执行,begin通常被用来修改内置变量(OFS、RS、FS等)、为用户自定义变量赋初始值
end模式
awk处理完所有输入行之后处理end模式
4、输入重定向
getline函数用于从标准输入、管道或者文件(非当前处理的文件)中读取输入
# awk 'BEGIN{"date" | getline d;split(d,mon);print mon[2]}'
# May
#awk 'BEGIN{while("ls" | getline d) s[x++]=d} {for(item in s){print s[item] }}'
[root@localhost redis]# awk 'BEGIN{while (getline < "/etc/passwd" >0 )lc++;print lc}'
35
输出重定向
#cat CheckLaunch.log.2012-05-17 | awk -F'[=,]' '$9==2 && $31==1 {print $8,"--"$9,"--"$30,"--"$31,"--"$32,"--"$33 >> "test.log"}'
重定向的文件用双引号括起来
awk中的管道
每次只能打开一个管道,必需关闭才能打开另外一个管道
管道右边的命令行被括在双引号中间
3、数组在awk中称关联数组,下标可以是数字也可以是字符串
发表评论
-
用vim比较文件
2013-09-17 10:07 8371. 使用vim的比较模式 ... -
linux去掉文件重复行
2013-08-28 18:20 880linux去掉文件重复行 在统计某些数据的时候,文件 ... -
linux下释放内存的cache
2013-07-31 13:03 905虽然内存cache对文件系统有加速,但是cache太多的文件 ... -
查看linux机器cpu信息
2013-06-27 17:27 544查看几核 cat /proc/cpuinfo | grep ... -
awk常用问题集锦
2012-12-07 15:38 820http://www.cnblogs.com/27681507 ... -
Linux中expr命令
2012-12-05 18:04 831http://blog.csdn.net/guhong5153 ... -
shell里面如何获取字符串长度--判断字符串为空
2012-12-05 18:04 1963#/bin/bashstr=12313; le1=`expr ... -
Linux中date命令
2012-12-05 17:35 3071Linux中date命令用法 1、以下是服务器现在的时 ... -
linux date得到当前时间的毫秒
2012-12-05 16:45 18007echo `expr \`date +%s%N\` / 100 ... -
Linux系统管理员应该知道的20个系统监控工具
2012-11-10 17:43 719http://bbs.chinaunix.net/thread ... -
LINUX SHELL 中 2>&1 重定向的问题
2012-07-31 15:17 1009转载http://blog.csdn.net/past ... -
shell 脚本中$$,$#,$?
2012-07-31 14:53 685$0 这个程式的执行名字 $n 这个程式的第n个参数值,n=1 ... -
linux shell getopts
2012-07-19 18:28 4308#getopts ALL=false HELP=false F ... -
linux如何根据进程ID查找启动程序的路径
2012-02-22 09:59 1197http://blog.csdn.net/eijnew/art ... -
linux rsync同步设置详细指南
2011-08-24 17:43 1241linux rsync同步设置详细指南 配置rsync 同步数 ... -
shell分割字符串
2011-06-16 14:58 1738#!/bin/sh ids="1,2,3,4, ... -
linux scp无密码
2011-06-07 17:14 1558原理: 密匙认证需要依靠密匙,首先创建一对密匙(包括公匙和 ... -
查看Linux操作系统的版本
2011-05-27 10:30 15232.4.26是内核的版本号,内核的版本号是Linus领导下的开 ... -
java调用shell,并得到shell的输出
2011-05-26 15:31 3289import java.io.IOException; ... -
把awk中的数组赋值给shell中的数组
2011-05-26 15:20 11823方法1,通过eval #!/bin/bash ipstr ...
相关推荐
【awk】1-awk基础篇(又名UNIX.Shell.awk).doc
AWK是一种编程语言,专门用于文本和数据的模式扫描和处理。在Linux和Unix操作系统中,AWK因其强大的文本处理能力而广泛应用。它的名字来源于其创始人Alfred Aho、Peter Weinberger和Brian Kernighan的姓氏的首字母。...
有关AWK命令的相关基础知识,可以帮助想要学习awk命令的人快速了解
下面是一份 awk 教程,从基础知识到高级应用,涵盖了 awk 的基本概念、语法、函数和应用实例。 awk 基础知识 awk 的基本结构是 pattern{action},其中 pattern 是awk的模式, action 是awk的动作。awk 的模式可以...
本基础教程将带你深入理解AWK的基本概念,助你快速掌握这一技能。 一、AWK概述 AWK是由三位名字中带有"A"、"W"和"K"的人——Aho、Weinberger和Kernighan共同创建的,因此得名。它是一种编程语言,主要用于处理和...
1. **AWK基础**:介绍AWK的基本概念,包括其工作原理、语法规则以及如何在命令行上运行AWK程序。读者会学习到AWK是如何通过模式空间和动作来处理输入的行,并理解BEGIN和END规则的用途。 2. **模式匹配**:详细讲解...
1. **awk基础知识**: - Awk是由Aho、Weinberger和Kernighan三位开发者命名的,缩写为awk。它是一款用于处理结构化数据的语言,常用于处理文本文件,报告生成,数据分析等。 - awk的工作原理是逐行扫描输入文件,...
**AWK基础知识** AWK基于行处理,每一行被视为一个记录,每个记录可以被分割成多个字段。默认情况下,字段是由空格或制表符分隔的。AWK程序由一系列规则和动作组成,规则定义了何时执行特定的动作。 ### 2. **AWK...
### 一、AWK 基础语法 AWK 是一个强大的文本处理工具,在 Linux 和 Unix 系统中广泛使用。AWK 的基本命令格式如下: ``` awk [选项] '模式或条件 {动作}' 文件名 ``` #### 选项 - `-F` 或 `--field-separator`:...
1. **AWK基础** - **变量**:AWK中的变量是自动声明的,无需预定义类型,可以是数字或字符串。 - **模式和动作**:AWK程序由模式和动作组成,模式匹配行,动作执行操作。 - **字段分隔符**:默认情况下,AWK按...
随着对awk基础命令和语法的掌握,进一步的学习应包括: 1. **数组使用**:awk支持一维和多维数组,可以用于更复杂的文本处理任务。 2. **函数与自定义函数**:了解内置函数,如`split()`和`gsub()`,并学习如何编写...
5. Awk基础:介绍awk的语法结构,如模式和动作,以及内置变量和函数。 6. Awk模式匹配:理解awk中的模式匹配机制,包括字段分割和模式匹配规则。 7. 控制结构:学习如何在awk中使用条件语句(if-else)和循环(for,...
### awk基础知识详解 #### 一、awk概述与基础命令 **awk**是一种强大的文本处理工具,在Linux和Unix环境中被广泛使用。它最初由贝尔实验室开发,名称“awk”即为三位开发者Alfred Aho、Peter Weinberger 和 Brian ...
1. **awk基础** awk的工作原理是基于行的处理,它会读取输入文件的一行一行,然后根据指定的模式(pattern)进行匹配,并执行相应的动作(action)。基本语法是`awk 'pattern {action}' file`。例如,`awk '/...
#### 二、awk基础概念 `awk` 是一种强大的文本处理工具,它支持数据提取和报告生成。`awk` 程序通常用于解析文本文件中的数据,并根据特定条件执行操作。`awk` 程序的基本结构包括一系列的“模式{动作}”语句,这些...
### Linux文本分析之AWK基础命令详解 #### 一、AWK概述 AWK是一种用于文本处理的强大脚本语言,其名称来源于三位开发者 Alfred Aho、Peter Weinberger 和 Brian Kernighan 的姓氏首字母。AWK 能够对文本进行高效地...
**AWK基础知识** 1. **基本语法**:`awk 'ACTION {COMMAND}' FILENAME`,ACTION是匹配条件,COMMAND是执行的动作,FILENAME是处理的文件。如果ACTION为空,表示对每一行都执行COMMAND。 2. **字段分隔符**:默认情况...
awk基础
**awk基础知识** `awk`这个名字来源于它的创始人——Aho、Wegman和Kernighan。它的工作原理是在文件或标准输入中逐行扫描,根据用户定义的模式和动作对每一行进行处理。基本语法结构如下: ```awk awk '模式 {动作}'...
#### 八、awk基础示例 继续使用`a.txt`文件,进行以下操作: - **打印列或域** - 示例:`awk -F' ' '{print $2}' a.txt` (打印第二列) - 解析:通过`-F`选项设置字段分隔符为空格,`$2`表示打印第二列内容。 ...