您的位置:首页 > 其它

Awk命令简介

2017-08-06 22:59 363 查看
一.awk命令简介

Awk是linux环境下的一个用于文本处理的编程语言工具。Awk按行读入,然后根据相应的命令来对文本进行操作,默认情况下把空格作为分隔符。

 

二.语法

awk'{pattern + action}' {filenames}
其中,pattern表示 AWK 在数据中查找的内容,而 action是在找到匹配内容时所执行的一系列命令。花括号{}不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。 pattern就是要表示的正则表达式,用斜杠/括起来。
 
三.调用方法

Awk有三种调用方法:

1.命令行方式

awk [-F  field-separator]  'commands'  input-file(s)

其中,commands 是真正awk命令,[-F域分隔符]是可选的。 input-file(s) 是待处理的文件。

在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。

2.shell脚本方式

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

相当于shell脚本首行的:#!/bin/sh

可以换成:#!/bin/awk

3.将所有awk命令插入一个单独的文件调用

awk -f awk-script-file input-file(s)

其中,-f选项加载awk-script-file中的awk脚本,input-file(s)跟上面的是一样的。

 

四.使用实例

1.patten使用实例

搜索/etc/passwd有root关键字的所有行

#awk -F: '/root/' /etc/passwd

root:x:0:0:root:/root:/bin/bash

这种是pattern的使用示例,匹配了pattern(这里是root)的行才会执行action(没有指定action,默认输出每行的内容)。

2. awk+action的示例

显示/etc/passwd的账户

#cat /etc/passwd |awk  -F ':'  '{print $1}' 

root

daemon

bin

sys

每行都会执行action{print$1}。-F指定域分隔符为':'。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: