awk命令1
[root@a ~]# awk 'END{print NR}' c.txt #没错,这就是文件的行数,当然,这种统计方法不是linux下最快的,但也是一种思路
3
[root@a ~]# wc -l c.txt #这种统计方法是linux下最快的
3 c.txt
[root@a ~]# head -3 /etc/passwd
root:a:0:0:root:/root:/bin/bash
bin:b:1:1:bin:/bin:/sbin/nologin
daemon:c:2:2:daemon:/sbin:/sbin/nologin
[root@a ~]# head -3 /etc/passwd | awk -F':' '{print $1}'
root
bin
daemon
[root@a ~]# head -3 /etc/passwd | awk -F':' '{print $2}'
a
b
c
[root@a ~]#head -3 /etc/passwd | awk -F':' '{print $1}{print $2}'
root
a
bin
b
daemon
c
#有两个print,可以看到第二列放到了第一列之后换行显示
[root@a ~]# head -3 /etc/passwd | awk -F':' '{print $1,"\n",$2}'
root
a
bin
b
daemon
c
#在print中将$1和$2之间加一个\n,第二列前的空白字符也被输出了,两者还是有所区别
[root@a ~]# head -5 /etc/passwd | awk -F: '{if(NR>2&&NR<5)print NR,$0}'
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
#awk条件语句,打印整行信息并显示打印行号,if语句位置在{ }中间
awk -F':' '$1~/root/' 1.txt
root:x:0:0:root:/root:/bin/bash
111root222:x:0:0:root:/root:/sbin/nologin
awk -F':' '$1~/root/{OFS="#";print $1,$2,$3}' 1.txt
root#x#0
111root222#x#0
awk -F':' '$1=="root"{print$1,$2,$3}' 1.txt
root x 0
awk -F':' '$1=="root" || NR>=30{print $1,$2}' 1.txt
root x
rpc x
111
awk -F':' 'NF>3&&NR<3{print $1,$2,$3}' 1.txt
root x 0
111root222 x 0
~为模糊匹配,==表示精确匹配
awk -F: '$3>=1000&&NF=="/bin/bash"{print $1,$NF}' /etc/passwd
#打印系统中能够正常登陆的普通用户
echo “one tow three four” |awk '{print $(NF-2)}'
two
#awk支持四则运算
awk ‘{print $2+20 >> "b.txt"}’ a.txt
#可以通过awk命令将结果重定向输出到b.txt文件
[root@a ~]# awk -F':' 'NF>3&&NR>16{print NR,"\t",$3,$5}' /etc/passwd
17 89
18 74 Privilege-separated SSH
打印符合条件的内容并显示行号,awk模式支持关系表达式
awk -F':' '$1~”root“{print $0}' 1.txt
#OFS用于输出时指定字段分隔符,后跟“;”接后续命令
awk -F':' '$1=="root"{print $1,$2}' 1.txt
awk -F':' '$1=="root"||NR>=30{print $1,$2}' 1.txt
awk -F':' 'NF>3 &&NR<4{print $1,$2,$3}' 1.txt
#列数(NF)大于3列,行数(NR)小于4行
匹配
awk -F: '/root/{print}' a.txt
awk -F: '/root/' a.txt
awk -F: '/^root/' a.txt
awk -F: '/bash$' a.txt
其他语句
awk -F':' '{if($3<10){print "USER=>"$1}} a.txt
awk -F':' '{printf "USERNAME:%-10s %15s\n",$1,$NF}' a.txt
实例:
1、过滤网卡的ip地址
注意:通过BEGIN{FS="[ :]+"}指定字段分隔符,其中BEGIN和END模块必需写在' '内部,如果是if条件表达式也必需写在' '中间,格式为'{if(条件){命令……}}‘
2、指定字段加20重定向到新的文件
awk通过变量查看文件行数
注意:a++等价于a=a+1,a++表示先赋值后加1。
awk命令1的更多相关文章
- linux awk命令详解
linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...
- awk命令详解
搜索 纠正错误 添加实例 awk 文本和数据进行处理的编程语言 补充说明 awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入(stdin).一个或多个文件 ...
- Linux安全基础:awk命令的使用
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...
- AWK命令学习
使用方法 awk 'pattern {action}' {filenames} 尽管操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到 ...
- awk 命令
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...
- AWK命令的用法
1.awk命令简介: awk是一种可以处理数据.产生格式化报表的语言,功能十分强大. awk的工作方式是读取数据,将每一行数据视为一条记录(record)每笔记录以字段分隔符分成若干字段,然后输出各个 ...
- [Linux] linux awk命令详解
reference : http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html 简介 awk是一个强大的文本分析工具,相对于g ...
- awk命令简单介绍
简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...
- Linux的awk命令
简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...
- awk命令--update20150120
简介 awk是一个强大的文本分析工具,把文件逐行读入,以空格为默认分隔符分割成field,切开的部分再进行各种分析处理. 模式和动作: 任何awk语句都是由模式和动作组成,模式部分决定动作语句何时触发 ...
随机推荐
- 剑指offer-数值的整数次方-调整数组顺序使奇数位于偶数前面-代码的完整性-python
题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 保证base和exponent不同时为0 思路 求base的expon ...
- python初始装饰器
python装饰器: 一,函数名的运用. 函数名是一个变量,但他是一个特殊的变量与括号配合可以执⾏行行函数的变量 1.函数名的内存地址 def func(): print("呵呵" ...
- luogu P5371 [SNOI2019]纸牌
传送门 打麻将+1(雾 有顺子这种东西...注意到以某个位置为开头的顺子数量最多为2,那么有个想法就是枚举以每个位置为开头的顺子个数,然后每个位置的刻子的取法个数为\(\lceil\frac{\tex ...
- G1 垃圾收集器之对象分配过程
G1的年轻代由eden region 和 survivor region 两部分组成,新建的对象(除了巨型对象)大部分都在eden region中分配内存,如果分配失败,说明eden region已经 ...
- git 本地tag和远程tag对应不上 vscode里pull不下代码
vscode拉取代码是用 git pull --tags origin saas-xxx > git pull --tags origin saas-base From 172.16.0.xx ...
- elementui 之el-pagination爬坑,属性pager-count的设定
我想设置总页数为10页,页码条总是显示两个页码,其余省略号显示,我选择了pager-count,如下: <el-pagination @size-change="handleSizeC ...
- ubuntu apache https设置
上篇文章已经描述过怎么生成证书,点击这里,直接写怎么设置 1.apache加载ssl模块, # a2enmod ssl 2.启动ssl站点 #a2ensite default-ssl 3.加入监听端口 ...
- 修改docker自定义网桥后的默认网卡名称
[root@docker2 ~]# docker network create --subnet=10.10.10.0/24 docker1 #新键网桥docker142323044a4 ...
- 牛客假日团队赛5 L Catch That Cow HDU 2717 (BFS)
链接:https://ac.nowcoder.com/acm/contest/984/L 来源:牛客网 Catch That Cow 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 3 ...
- nasm
sudo apt install nasm 64bit: nasm -f elf64 test.asm ld -s -o test test.o --------------------------- ...