linux常用命令 awk命令
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命令的更多相关文章
- ## 本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘
本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘一,磁盘管理1.显示当前目录位置 pwd2.切换目录 cd ...
- Linux 常用的压缩命令有 gzip 和 zip
Linux 常用的压缩命令有 gzip 和 zip,两种压缩包的结尾不同:zip 压缩的后文件是 *.zip ,而 gzip 压缩后的文件 *.gz 相应的解压缩命令则是 gunzip 和 unzip ...
- Linux常用的基础命令总结
man 查看英文命令帮助 可以看作--help 拷贝目录的命令cp -a 包含所有 ls -a 显示所有文件包括隐藏文件 -ld ls -F 过滤目录文件(给不同类型文件结尾加上不同的符号) ...
- Linux三剑客之awk命令详解
一.awk介绍 AWK是一种优良的文本处理工具.它不仅是 Linux 中也是任何环境中现有的功能最强大的数据处理引擎之一.这种编程及数据操作语言(其名称得自于它的创始人 Alfred Aho .Pet ...
- LINUX常用配置及命令
一. Fedora系统配置 1. [设置网卡IP] 步骤如下: 1) 用root用户登陆,打开/etc/sysconfig/network-scripts/ifcfg-eth0文 ...
- Linux学习之awk命令
一. AWK 说明 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能 ...
- 【Linux基础】awk命令
1.awk命令说明 (1)awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息 (2)awk处理过程: 依次对每一行进行处理,然后输出 ...
- Java线上问题排查思路及Linux常用问题分析命令学习
前言 之前线上有过一两次OOM的问题,但是每次定位问题都有点手足无措的感觉,刚好利用星期天,以测试环境为模版来学习一下Linux常用的几个排查问题的命令. 也可以帮助自己在以后的工作中快速的排查线上问 ...
- Linux Shell编程 awk命令
概述 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入(stdin).一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是l ...
随机推荐
- Dell3470无法开机或开机黑屏情况下检测屏幕是否正常
故障现象:Dell3470无法开机,点击开关按键无任何反应 故障分析:释放静电后故障依旧.更换电源适配器后故障依旧,初判主板故障,无法确认屏是否正常 解决方法:除去拆机单独测试外,Dell售后告知一个 ...
- oracle中新建用户和赋予权限
1.新建个用户 create user xxxxx(用户名) identified by "密码" alert user 用户名 identified by “新密码” --修改用 ...
- python 包 笔记
绝对导入和相对导入 我们的最顶级包glance是写给别人用的,然后在glance包内部也会有彼此之间互相导入的需求,这时候就有绝对导入和相对导入两种方式: 绝对导入:以glance作为起始 相对导入: ...
- 详解docker中容器devicemapper设备的挂载流程
事故起因 版本说明:本文中docker版本主要基于1.10版本,操作系统为centos7.devicemapper在文中缩写为dm. 某个用户的容器启动不起来,启动时候一直报错.通过docker lo ...
- linux 系统下安装多个php版本
思路: 下载不同的php源码包,解压后安装在不同的目录下,修改php-fpm监听的端口号 php安装配置参数: ./configure --prefix=/usr/local/php71 --exec ...
- docker安装nginx实例
1.拉取nginx镜像: docker pull nginx 2.查看本地镜像文件: docker images 3.创建挂载目录: mkdir -p /docker_data/nginx/{con ...
- 小程序modal解决
data{ shareDialog:false, } <cover-view wx:if="{{shareDialog}}" class="list_tab&quo ...
- 忽略 iconv 转码错误导致输出中断
在遇到一些特殊字符时候,使用iconv转码会提示报错,导致整段文字输出为空,解决的方法是增加TRANSLIT//IGNORE $str = iconv("UTF-8", " ...
- Hadoop2.X管理与开发
Hadoop 2.X 管理与开发 一.Hadoop的起源与背景知识 (一)什么是大数据 大数据(Big Data),指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式 ...
- psycopg2+postgis+pgAdmin4
基于docker的postgres 部署见这篇 https://www.cnblogs.com/xuanmanstein/p/7742647.html 连接数据库 import psycopg2cla ...