http://man.lupaworld.com/content/manage/ringkee/awk.htm#id2874788 awk学习
awk 命令
awk '$1 + $2 < 100' test
awk '$1 > 5 && $2 < 10' test
awk '/^(no|so)/' test -----打印所有以模式no或so开头的行。
awk '/^[ns]/{print $1}' test-----如果记录以n或s开头,就打印这个记录。
awk '$1 ~/[0-9][0-9]$/(print $1}' test-----如果第一个域以两个数字结束就打印这个记录。
awk '$1 == 100 || $2 < 50' test-----如果第一个或等于100或者第二个域小于50,则打印该行。
awk '/test/{print $1 + 10}' test-----如果记录包含正则表达式test,则第一个域加10并打印出来
awk '{print ($1 > 5 ? "ok "$1: "error"$1)}' test-----如果第一个域大于5则打印问号后面的表达式值,否则打印冒号后面的表达式值。
awk '/^root/,/^mysql/' test----打印以正则表达式root开头的记录到以正则表达式mysql开头的记录范围内的所有记录,如果找到一个新的正则表达式root开头的记录,
则继续打印直到下一个以正则表达式mysql开头的记录为止,或到文件末尾
ariable = expression,如$ awk '$1 ~/test/{count = $2 + $3; print count}' test,上式的作用是,awk先扫描第一个域,一旦test匹配,
就把第二个域的值加上第三个域的值,并把结果赋值给变量count,最后打印出来。
awk 'BEGIN{FS=":"; OFS="\t"; ORS="\n\n"}{print $1,$2,$3} test。
awk 'END{print "The number of records is" NR}' test,上式将打印所有被处理的记录数。
awk '$1 = 100 {print $1 > "output_file" }' test。
awk 'BEGIN{ "date" | getline d; print d}' test。执行linux的date命令,并通过管道输出给getline,然后再把输出赋值给自定义变量d,并打印它。
awk 'BEGIN{"date" | getline d; split(d,mon); print mon[2]}' test。执行shell的date命令,并通过管道输出给getline,然后getline从管道中读取并将输入
赋值给d,split函数把变量d转化成数组mon,然后打印数组mon的第二个元素。
awk 'BEGIN{while( "ls" | getline) print}'
awk 'BEGIN{printf "What is your name?"; getline name < "/dev/tty" } $1 ~name {print "Found" name on line ", NR "."} END{print "See you," name "."} test
awk 'BEGIN{while (getline < "/etc/passwd" > 0) lc++; print lc}'
awk '{print $1, $2 | "sort" }' test END {close("sort")}。awd把print语句的输出通过管道作为linux命令sort的输入,
END块执行关闭管道操作。
awk '{if ($1 < $2) {count++; print "ok"}}' test
awk '{if ($1 > 100){ count++; print $1} else {count--; print $2}' test
awk '{ i = 1; while ( i <= NF ) { print NF,$i; i++}}' test
awk '{for (i = 1; i<NF; i++) print NF,$i}' test
{for ( x=3; x<=NF; x++)
if ($x<0){print "Bottomed out!"; break}}
{for ( x=3; x<=NF; x++)
if ($x==0){print "Get next item"; continue}}
awk '/^tom/{name[NR]=$1}; END{for(i in name){print name[i]}}' test
awk '{count[$1]++} END{for(name in count) print name,count[name]}' test
awk '{line[x++]=$1} END{for(x in line) delete(line[x])}' test
awk '{ sub(/test/, "mytest"); print }' testfile gsub
awk '{ sub(/test/, "mytest"); $1}; print }' testfile
awk '{ print index("test", "mytest") }' testfile
awk '{ print length( "test" ) }'
awk '{ print length }' testfile
substr( string, starting position )
substr( string, starting position, length of string )
awk '{ print substr( "hello world", 7,11 ) }'
awk '{start=match("this is a test",/[a-z]+$/); print start}'
awk '{start=match("this is a test",/[a-z]+$/); print start, RSTART, RLENGTH }'
awk '{ print toupper("test"), tolower("TEST") }'
awk '{ split( "20:18:00", time, ":" ); print time[2] }'
awk '{ now = systime(); print now }'
awk '{printf("%s,",$1)}' filename
分享到:
相关推荐
Linux中的awk命令是一个强大的文本分析工具,用于处理和解析文件中的数据。awk的名称来源于它的创始人: Alfred V. Aho, Peter J. Weinberger, 和 Brian W. Kernighan。awk有三个主要版本:awk、nawk(new awk)和...
### Linux中的文本处理工具:awk、grep、sed #### 一、awk命令详解 **1.1 awk简介** - **定义**: awk 是一种强大的文本处理工具,也是一种编程语言,主要用于处理数据和生成报告。 - **功能**: awk 通过逐行扫描...
### Linux 下 awk 命令详解 #### 一、引言 `awk` 是一个功能强大的文本处理工具,在 Unix 和类 Unix 操作系统(如 Linux)中被广泛使用。它不仅可以进行模式匹配,还能执行复杂的文本处理任务。本文将详细介绍 `awk...
### Linux grep sed awk命令详解 #### 一、grep命令详解 **grep** 是一个用于查找文件里符合条件的字符串的强大工具。它可以对文件进行快速搜索,找出含有特定模式的行。 - **基本语法**:`grep [选项] 模式 文件...
Linux中的AWK命令是一个强大的文本分析工具,它允许用户在数据流中进行模式匹配和处理。这个命令的名字来源于它的三位创始人—— Alfred V. Aho、Peter J. Weinberger 和 Brian W. Kernighan 的首字母缩写。在Linux...
Awk的工作方式是逐行读取输入,查找与预定义模式匹配的行,并执行相应操作。本书会详细阐述awk的内置变量、函数,以及如何使用条件语句和循环控制程序流程。 在《Linux Sed与Awk第三版》中,作者可能会涵盖以下核心...
【Linux Awk 学习手册】 awk 是一个强大的文本分析工具,源于 UNIX 系统,由 Aho、Weinberg 和...无论是快速查找、替换、统计,还是进行更复杂的分析和报告生成,awk 都能胜任,值得每一个 Linux 用户深入学习和掌握。
### Linux主要Shell命令、sed、awk使用详解 #### 一、Shell基础概念 Shell作为Linux操作系统的核心组件之一,充当着用户与系统内核之间的重要桥梁。通过Shell,用户可以直接与操作系统进行交互,执行各种命令来...
* 使用 AWK 需要指定 pattern 和 action,pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。 * AWK 可以以命令行方式、shell 脚本方式和将所有的 AWK 命令插入一个单独文件...
然后,它可以执行诸如查找、替换、删除或插入新行等命令来修改这些行。完成所有命令后,sed将修改后的行输出到标准输出。由于sed默认是非交互式的,因此它非常适合用于批处理任务或者在脚本中使用。 **基本语法**:...
`awk`是一种强大的文本处理工具,它在Linux环境下被广泛用于数据操作任务,例如格式化数据、验证数据有效性、查找具有特定属性的项、累加数字以及打印报告等。由于这些任务经常出现,并且通常涉及简单的机械式数据...
AWK 的使用方法是通过Pattern和Action来实现的,Pattern 表示 AWK 在数据中查找的内容,而 Action 是在找到匹配内容时所执行的一系列命令。Pattern 就是要表示的正则表达式,用斜杠括起来。 AWK 语言的基本结构是 {...
### Linux系统中的查询三剑客:grep、awk、sed 使用详解 #### grep 命令详解 `grep` 是一个非常强大的文本搜索工具,它可以在文本中查找指定的字符串,并且能够逐行处理文本。这使得 `grep` 成为了文本处理和数据...
### Linux常用命令大全 #### 一、文件管理 1. **查看目录与文件** - **ls**: 用于列出当前目录下的文件和子目录。常用选项包括: - `-l`: 以长格式显示文件详细信息,如权限、所有者、大小等。 - `-a`: 显示...
Linux 命令大全搜索工具提供了一个详细的命令列表,包括 A series 命令、apachectl 命令、arp 命令、atop 命令、awk 命令、axel 命令等。这些命令涵盖了 Linux 系统中的各种功能,例如文件管理、网络管理、系统管理...
### Linux常用命令详解知识点 #### 一、命令格式与通配符 - **命令格式**: - **命令**:指定要执行的操作。 - **选项**:改变命令的行为方式,通常以`-`开头,多个选项可以用空格或直接连接的方式给出。 - **...
在Linux或Unix环境中,`grep`、`sed`和`awk`是三个非常强大的文本处理工具。通过掌握这些工具的基本用法及高级功能,用户可以高效地处理各种文本文件。下面将详细介绍如何使用这些命令进行具体的文本操作。 #### 1....
以上就是对“Linux文本处理命令:awk、sed、grep”的详细知识点解读。这些工具虽然功能各有侧重点,但都是处理Linux文本数据的强大武器。通过上述内容的学习,相信你已经对这三个命令有了深入的了解,并能够在实际...
学习grep、sed和awk这三个Linux三剑客命令的意义远不止于掌握工具本身,它更是为后续学习更高级的Linux工具和脚本编程打下坚实的基础。无论你的目标是成为一名专业的系统管理员、DevOps工程师,还是仅仅出于兴趣成为...
这些只是Linux命令海洋中的一部分,实际使用中还有很多其他命令,如awk、sed、tar、wget、curl等,它们各有独特的功能,能帮助用户完成各种复杂的任务。通过深入学习和实践这些命令,可以大大提高Linux系统的操作...