awk
三个部分:
BEGIN{} #在脚本开始的时候执行一次,相当于初始化
{} #每一行都会执行一次的部分
END{} #脚本运行完之后会执行一次。相当于最后的总结。
如何写成文件?
#!/bin/awk -f BEGIN{ print "begin"; } { print "everyline"; } END{ print "end"; }
但是ubuntu上会报 ?/bin/awk 解释器已损坏。这是由于在/bin/awk这找不到awk程序,怎么办?
whereis awk ,找到awk的位置,然后改成正确的位置即可。
#!/usr/bin/awk -f BEGIN{ print "begin"; } { print "everyline"; } END{ print "end"; }
运行:
chmod +x mytest.awk ./mytest.awk data.txt
一些内建数据变量:
$0 $1 $2.... # $0表示读入的那一行$1...表示各个field
NF(Number of Fields)
NR(Number of Records)
FILENAME(正在处理的数据文件文件名)
awk有一个输入函数:getline
awk 有两个输出函数:print和printf,其中printf是用于格式化输出的,用法同c语言中的用法
awk 中使用管道:
"ls" | getline;
blablabla;
print $1 | "sort" >> "today.txt"
这样会多次调用getline,但只会调用一次 sort,即在所有输出完毕后通过pipe将数据传给sort。之前数据都缓存在了pipe里
但使用 system( "shell 命令" ) 时, awk无法直接将执行中的部分数据输出给Shell 命令. 且 Shell 命令执行的结果也无法直接输入到awk中.
system("date > date.txt")
awk 中的 > 与shell中的>不同, awk中的>会追加,只是第一次打开的文件时会进行覆盖原来的文件。
FS: Filed Separator。 例子: BEGIN { FS="[\t:]"}
for (variable in array){}
关闭文件或者管道:
close(your_file_name)
close("sort >> 1.txt") # 之前管道后面的字符串,一个字符都不能错,否则关闭的就是另外的文件
split( 原字符串, 数组名, 分隔字符(field separator) )
相关推荐
算数函数、字符串函数、其它一般函数、时间函数
此为linux中awk语句的详细使用教程。
awk学习笔记
awk学习笔记,从论坛整理而来!awk学习笔记,从论坛整理而来!他妈的!非要20个字么?
AWK学习笔记.doc,在网上发现的一个不错的学习笔记,整理出来供大家研究。
PDF电子书《Awk学习笔记2010修改版》
awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和 动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。...
awk学习笔记,包括awk编程的基本命令语法等信息,是学习awk编程的好帮手
sed与awk(第二版)学习笔记
关于AWK的简单笔记类教程,内容非本人缩写,所以不要分,我下载的是DOC版,顺手做成了PDF版,有书签
awk 学习笔记加例子希望可以帮助 大家好好理解awk的应用
awk学习笔记(简单易学的Linux 暗淡)
awk常用变量,常用参数 awk学习笔记
awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理。
主要记录了awk的学习使用笔记和常用举例 awk的一些具体介绍
1. awk简介 2. awk命令格式和选项 2.1. awk的语法有两种形式 2.2. 命令选项 3. 模式和操作 3.1. 模式 3.2. 操作 4. awk的环境变量 5. awk运算符 6. 记录和域 6.1. 记录 6.2. 域 6.3. 域分隔符 7. gawk专用...
awk简明教程,配套实例经验。