awk: 报告生成器 简单用法

1:tail -5  /etc/fstab | awk ‘{print $2,$4}‘

打印/etc/fstab 文件里后五行的第2和第4段内容

[[email protected] temp]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Dec 30 06:43:45 2015
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk‘
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=42725ac6-787d-4be4-a766-a4b9325eba7e /                       ext4    defaults        1 1
UUID=ec7cf699-9e55-4305-a463-859f8ba83f3b /boot                   ext4    defaults        1 2
UUID=52937bf3-72c9-48d7-a05c-72726731c995 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

[

[email protected] temp]# tail -5 /etc/fstab |awk ‘ {print $2,$4}‘
swap defaults
/dev/shm defaults
/dev/pts gid=5,mode=620
/sys defaults
/proc defaults

[[email protected] temp]# tail -5 /etc/fstab |awk ‘ {print $2,$4}‘

命令解释: |左边表示取出 /etc/fstab 的后五行

awk ‘ {print $2,$4}‘  取出2,4段的文件内容

“awk ‘ {print #,#}‘ ” 是基本使用格式,其实“ ‘  {”之间可以放置输出内容的分隔符

下边我们用制定变量模式来做个例子:

[[email protected] temp]# awk -v FS=: ‘  {print $1,$7}‘ /etc/passwd | head -5
root /bin/bash
bin /sbin/nologin
daemon /sbin/nologin
adm /sbin/nologin
lp /sbin/nolo

gin

"-v"表示我后边要定义变量了 “FS”是input Field Seperator缩写,意思为输入字段的分隔符,默认为空白,我这里认为定义FS=:

当然我们其实可以直接使用-F 选项 “awk -F:‘  {print $1,$7}‘ /etc/passwd | head -5” 这个根上边的结果是一样的

与FS相反,OFS即 Output  Field Seperator. 我们举个例子说明他的用法

[[email protected] temp]# awk -F: -v OFS=:  ‘{print $1,$7}‘ /etc/passwd |head -5
root:/bin/bash
bin:/sbin/nologin
daemon:/sbin/nologin
adm:/sbin/nologin
lp:/sbin/nologin

其实就在前边多个变量定义“ OFS=:”

[[email protected] temp]# awk -F: -v OFS=:  ‘{print $1,$7}‘ /etc/passwd |[[email protected] temp]# awk -F: -v OFS=#  ‘{print $1,$7}‘ /etc/passwd |head -5
root#/bin/bash
bin#/sbin/nologin
daemon#/sbin/nologin
adm#/sbin/nologin
lp#/sbin/nologin
 换成#也一样

RS :input record seperator 输入时的换行符号

ORS: ouput record seperator  输出时的换行符号

例如 :awk -v RS=‘:‘ ‘{print $0}‘ /etc/passwd |tail -5
[[email protected] temp]# awk -v RS=‘:‘ ‘{print $0}‘ /etc/passwd  |tail -5
500
marco-chen
/home/marco
/bin/bash
[[email protected] temp]# tail  -1  /etc/passwd
marco:x:500:500:marco-chen:/home/marco:/bin/bash

可以看出,他是以:为分隔符,把每一个字段单独放一行。

awk -v ORS=‘:‘ ‘{print $0}‘ /etc/passwd  |tail -5

显示文件中每一行的字段数  “NF :number of field  字段数量”

awk ‘ {print NF}‘ /etc/fstab

显示文件中每一行的最后一个字段内容

awk ‘ {print $NF}‘ /etc/fstab
1
2
3
4
5
6
.
.
多文件单独计数:FNR 
awk ‘ {prin FNR}‘ /etc/fstab  /etcissue
1
2
.
.
1
2
.
.
awk ‘ {print FILENAME}‘ /etc/passwd

自定义变量:

(1)   -v var=value
      (2)   program中直接定义   可以直接引用不用$符号
             例如 :awk -v test=‘good luck‘ ‘{print test}‘  /etc/fstab 
                        good luck
good luck
good luck
good luck
good luck
good luck
good luck
。。。。。

fstab中有多少行就显示多少个goodluck

awk ‘{test="good luck";print test}‘ /etc/fstab

这条操作同上一条一样

简单应用就到这里吧下边的太难了

时间: 2024-10-28 21:58:35

awk: 报告生成器 简单用法的相关文章

Awk报告生成器

一.awk概念以及使用格式 Awk是一个强大的报告生成器,awk自身具有遍历的功能,支持条件循环,就是一个编程语言,awk 的输出  1.print命令 后接各项目使用逗号分割,而输出时则使用输出符分割.2.输出是个字符串或数值,当记录的字段.变量或awk的表达式:数值会被隐式转换为字符串后输出.3.print后面如果省略相当于$0 输出空白print"".4.显示当前系统上.如果print后接选项没有逗号只有空格输出的结果连载一起{print $1 $7} 1.Awk 的变量分为内置

awk——报告生成器

文本处理三剑客--grep,awk,sed:grep是基于pattern过滤输出,有三种模式,grep,egrep以及fgrep:sed则是一种流编辑器,进行插入删除,常用于进行文本中的替换操作:而awk的功能就更加强大了,作为一种格式化文本工具,awk通过分隔符控制文本,awk默认的分隔符是空格:awk还可以通过pattern匹配按行进行遍历,通过算术表达式对行进行排查,还可以for,while,continue,break等控制语句找到符合条件的信息进行输出:他还可以对输出的结果进行修饰采用

Linux中awk命令的简单用法

一.用例1: cat /proc/meminfo|grep "MemTotal"|awk '{print $2}' 说明,$2表示第2位,$0表示全部,如需表示$,可用$$转义.

文本处理三剑客之awk(报告生成器)

文本处理三剑客之awk(报告生成器) awk是一款强大的报告生成器,不同于sed和grep,它的侧重点是如何把文本信息更好的展示出来,常用与统计和格式化输出.awk相当于微型的shell,有着自己一套语法结构,例如:循环结构,数组,条件判断,函数,内置变量等功能. awk在我认为简直就是文本处理时打劫放火一大利器. 例如取出/etc/passwd中的第一列. [root@CentOS6 ~]# awk -F: '{print $1}' /etc/passwd root bin daemon ad

awk:报告生成器

awk:报告生成器 格式化后显示信息 语法: awk [options] 'script' file1 file2, ... awk [options] 'PARTTERN { action }' file1 file2, ... 最常见的action:print,printf awk的基本特征: a.每一次取一行 b.根据指定的分隔符(不指定是位空白字符)将该行切割位列,使用$0(整行),$1,$2,$3...(第一列,第二列,...) c.可以指定行号,列号,切割符,操作后分隔符 案例: c

LINUX 下 find grep sed awk 的常见基本用法特点

LINUX 下 find grep sed awk 的常见基本用法特点 只为让自己具有更高的水准,这就开始了长达6个月的小白进阶路! 这几天学习linux基础命令有点犯蒙,尤其是对文件查找这块.所有我想把一些我觉得常用的实用的参数项总结下来,大神勿喷哈... 不到之处请大家指教,小女子在此谢过了. 一.find:命令用于查找文件系统中指定的文件,其命令格式为: 1.find pathname -options [ -print  -exec  -ok ... ] (1)find 命令的参数: p

iOS block-base 动画简单用法+关键帧动画设置线性变化速度的问题

本文转载至 http://www.tuicool.com/articles/aANBF3m 时间 2014-12-07 20:13:37  segmentfault-博客原文  http://segmentfault.com/blog/alan/1190000002411296 iOS的各种动画相漂亮,相信这是吸引很多人买iPhone的原因之一.不仅如此,这还是吸引我做iOS开发的一大原因,因为在iOS上给界面实现一些像样的动画实在是太轻松了! 这里就介绍一下iOS的block-based an

Android WIFI 简单用法

随着Wifi的普及,在开发App的时候对wifi的考虑越来越多了.例如程序的升级在wifi下可以省很多流量,在通信软件中的视频通话.可以实现高画质的传输等等,Android提供了WifiManager类来帮助开发者们管理Wifi.下面就简单来说一下WifiManager的简单用法把. 权限: 为了使用WfiManager 我们需要在Androidmanifest.xml 加入权限: //本例中使用了前两个.具体请按照需要添加权限. <uses-permission android:name=&quo

Android中资源文件中的字符串数组string-array简单用法

在Android中,用string-array是一种简单的提取XML资源文件数据的方法. 例子如下: 把相应的数据放到values文件夹的strings.xml文件里,或是其他自定义的xml中都可以,以下操作方法相同. <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="sports"> <item>足球<