awk命令

awk [选项] '条件1{动作1} 条件2{动作2}...' 文件名

条件(Pattern)
*) 一般使用关系表达式作为条件
*) x>10 判断变量x是否大于10
*) x>=10 大于等于
*) x<=10 小于等于
动作(Action)
*)格式化输出
*)流程控制语句
awk 默认使用空格或制表符(Tab)作为分割符
awk 一次处理一行内容
awk 可以对每行进行切片处理 $awk '{printf $1}' 输出首个字段

awk的内置参数

$0
表示整个当前行
$1
表示每行第一个字段
$2
表示每行第二个字段
...

awk自定义分隔符

awk分隔符
使用-f进行设定
awk -F ':' '{print $3}' /etc/passwd  使用":"作为分割符
awk -F ':' '{print $1,$3}' /etc/passwd 多个字段之间用,分割
awk -F ':' '{print $1" "$3}' /etc/passwd 多个之间用空格分割

awk内置参数NR,NF,FILENAME

NR 每行记录号 行号
NF 每行字段数 列号
FILENAME 正在处理的文件名
[root@ssgao1987 ~]# ll | awk '{print NR,NF}'
1 2
2 9
3 9
[root@ssgao1987 ~]# ll | awk '{print FILENAME}'

awk 执行条件

awk [选项] '条件1{动作1} 条件2{动作2}...' 文件名
条件(Pattern)
*) 一般使用关系表达式作为条件
*) x>10 判断变量x是否大于10
*) x>=10 大于等于
*) x<=10 小于等于
动作(Action)
*)格式化输出
*)流程控制语句

awk条件使用逻辑判断式

~,!~ 匹配正则表达式
==,!=,<,>: 判断逻辑表达式
awk逻辑判断实例
[root@ssgao1987 ~]# ll
总用量 52
-rw-r--r--. 1 root root     0 7月  15 05:51 ls.log
drwxr-xr-x. 2 root root  4096 7月  19 08:27 redis
-rwxr--r--. 1 root root    86 7月  15 01:28 shell_01.sh
drwxr-xr-x. 2 root root  4096 7月  15 06:55 ssgao
[root@ssgao1987 ~]# ll | awk '$9~/ssgao/{print $9}' (条件判断式:$9~/ssgao/)
ssgao
[root@ssgao1987 ~]# ll | awk '$7>20 {print $0}'
-rw-r--r--. 1 root root   277 7月  30 17:11 df.log
-rw-r--r--. 1 root root   493 7月  30 17:28 eth0.log

awk扩展格式BEGIN,END

awk [options] 'condition {command}' file
扩展
BEGIN{print "begin"} pattern {commands} END {print "end"}
awk是读一行处理一行,处理是在commands中完成
BEGIN是在读行之前进行操作的,相当于初始化
END所有行执行后完成的
[root@ssgao1987 ~]# awk -F ":" 'BEGIN{print "LINE CLO USER"}{print NR" "NF" "$1}END{print"----"FILENAME"----"}' /etc/passwd
LINE CLO USER
1 7 root
2 7 bin
3 7 daemon
----/etc/passwd---- 求和运算
[root@ssgao1987 ~]# ll | awk 'BEGIN{size=0}{size+=$5}END{print "SIZE is:" size }'
SIZE is:28340 判断passwd文件中非空用户数
awk -F ":" 'BEGIN{count=0}$1!~/^$/{count++}END{print "count =" count}' passwd 判断passwd文件中UID大于100
awk -F ":" 'BEGIN{count=0}{if($3>100) name[count++]=$1}END{for (i=0;i<count;i++) print i,name[i]}' passwd

linux常用命令 awk命令的更多相关文章

  1. ## 本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘

    本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘一,磁盘管理1.显示当前目录位置 pwd2.切换目录 cd ...

  2. Linux 常用的压缩命令有 gzip 和 zip

    Linux 常用的压缩命令有 gzip 和 zip,两种压缩包的结尾不同:zip 压缩的后文件是 *.zip ,而 gzip 压缩后的文件 *.gz 相应的解压缩命令则是 gunzip 和 unzip ...

  3. Linux常用的基础命令总结

    man 查看英文命令帮助   可以看作--help 拷贝目录的命令cp -a  包含所有 ls -a 显示所有文件包括隐藏文件  -ld ls -F 过滤目录文件(给不同类型文件结尾加上不同的符号) ...

  4. Linux三剑客之awk命令详解

    一.awk介绍 AWK是一种优良的文本处理工具.它不仅是 Linux 中也是任何环境中现有的功能最强大的数据处理引擎之一.这种编程及数据操作语言(其名称得自于它的创始人 Alfred Aho .Pet ...

  5. LINUX常用配置及命令

    一.   Fedora系统配置 1.      [设置网卡IP] 步骤如下: 1)     用root用户登陆,打开/etc/sysconfig/network-scripts/ifcfg-eth0文 ...

  6. Linux学习之awk命令

    一. AWK 说明    awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能 ...

  7. 【Linux基础】awk命令

    1.awk命令说明 (1)awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息 (2)awk处理过程:  依次对每一行进行处理,然后输出 ...

  8. Java线上问题排查思路及Linux常用问题分析命令学习

    前言 之前线上有过一两次OOM的问题,但是每次定位问题都有点手足无措的感觉,刚好利用星期天,以测试环境为模版来学习一下Linux常用的几个排查问题的命令. 也可以帮助自己在以后的工作中快速的排查线上问 ...

  9. Linux Shell编程 awk命令

    概述 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入(stdin).一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是l ...

随机推荐

  1. Java基础总结3

    计算只做加法计算 减法也是加法计算出来的: 1,顺序结构: 按照编写代码的顺序从上而下逐行翻译执行: 特点:每行代码都能被执行到且被执行一次: 2,选择结构看条件: 条件为true(成立)执行代码块: ...

  2. Java8过滤器(Filter)

    1.在Java之前对List进行过滤的方式 public class BeforeJava8 { public static void main(String[] args) { List<Pe ...

  3. 依据word模板批量生成试卷

    java-word-MassProduction 目录 使用方法 开发流程 一.使用方法 1.制造题库所需Word模板 需要填充数据的地方使用 ${pid} 代替. 将这个word选择另存为,保存格式 ...

  4. UI自动化(十三)appium操作

    定位: # id resource-id可能出现重复 如果appium-desktop提示了id 定位方式 说明id唯一driver.find_element_by_id('com.tencent.m ...

  5. CH 5102Mobile Service题解

    题目: 用动态规划很容易将完成任务量作为dp的阶段,通过指派服务员,从当前i-1个任务转移到i个任务: 我们可以用一个四维数组f[i][x][y][z]来表示在完成当前任务i时,三个机器人分别在x,y ...

  6. loj 6037 「雅礼集训 2017 Day4」猜数列 - 动态规划

    题目传送门 传送门 题目大意 有一个位置数列,给定$n$条线索,每条线索从某一个位置开始,一直向左或者向右走,每遇到一个还没有在线索中出现的数就将它加入线索,问最小的可能的数列长度. 依次从左到右考虑 ...

  7. orm 扩展

    """ORM小练习 如何在一个Python脚本或文件中 加载Django项目的配置和变量信息""" import os if __name_ ...

  8. USACO比赛题泛刷

    随时可能弃坑. 因为不知道最近要刷啥所以就决定刷下usaco. 优先级排在学习新算法和打比赛之后. 仅有一句话题解.难一点的可能有代码. 优先级是Gold>Silver.Platinum刷不动. ...

  9. 剑指offer 13:调整数组顺序使奇数位于偶数前面

    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 法一: public clas ...

  10. Dingo 的安装

    安装Dingo需要下面的环境: Laravel 5.1 或 lumen 5.1 + php 5.59+ 1. 修改composer.json 文件,添加下面的代码: "require&quo ...