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 ...
随机推荐
- 《CSS世界》读书笔记(十四)
<!-- <CSS世界>张鑫旭著 --> 功勋卓越的 border 属性 border-width 不支持百分比值 border-style 类型 border-style ...
- Vue入门:Vue环境安装
安装环境 操作系统:Windows 10 64位 安装Node.js 1. 下载系统对应版本安装包 下载地址:https://nodejs.org/en/download/ 2. 安装 除安装地址外其 ...
- python:循环定义、赋值多个变量
exec函数,可以循环定义.赋值多个变量 exec ("temp%s=1"%1) 这段代码的意思是,让exec执行temp1=1.字符串里面的%s由‘1’代替了. 我们在外面再 ...
- 2019-泰迪杯c题数据处理,WGS-84(世界标准地理坐标系) 转为 BD-09(百度地理坐标系)
2019-泰迪杯c题数据处理,WGS-84(世界标准地理坐标系) 转为 BD-09(百度地理坐标系) 本次泰迪杯的数据为经纬度数据,并且题目给的是WGS-84(世界标准地理坐标系)格式的,所有如果调用 ...
- HTML和CSS怎么用
首页> 1.HTML和CSS是什么? ·网站和HTML页面 ·简单理解网站 ·一个房子比喻(HTML比喻成房子,CSS为装修) ·页面的整体结构:有树桩标签对嵌套组成 ·页面的组成单元:元素 · ...
- Bootstrap3基础 栅格系统 列中有行,行中有列
内容 参数 OS Windows 10 x64 browser Firefox 65.0.2 framework Bootstrap 3.3.7 editor ...
- pythong+selenium自动创建随笔
这里是发帖区域,赶紧写下你的思绪
- JVM即时编译器
为何HotSpot虚拟机要使用解释器与编译器并存的架构? 为何HotSpot虚拟机要实现两个不同的即时编译器? 程序何时使用解释器执行?何时使用编译器执行? 哪些程序代码会被编译为本地代码?如何编译为 ...
- Mysql_大字段问题Row size too large.....not counting BLOBs, is 8126.
[问题描述] 1.从myslq(5.7.19-0ubuntu0.16.04.1)中导出sql脚本,导入到mysql(5.5.27)中,报如下错误:Row size too large. The max ...
- P2685 [TJOI2012]桥
P2685 [TJOI2012]桥 思路: 先求出最短路: d1[u] : u 到 1 的最短路, d2[u] : u 到 n 的最短路 再求出一条从 1 到 n 的最短路链,然后从链上的每一个点出发 ...