当前位置:网站首页>Shell-awk命令的使用
Shell-awk命令的使用
2022-04-23 17:04:00 【魔笛Love】
awk
一个强大的文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理。
基本用法
awk [选项参数] 'pattern1{action1} pattern2{action2}...' filename
pattern:表示AWK在数据中查找的内容,就是匹配模式
action:在找到匹配内容时所执行的一系列命令
只有匹配了pattern的行才会执行action;匹配了pattern1就执行action1,匹配了2就执行action2。
常用选项参数说明
选项参数 | 功能 |
---|---|
-F | 指定输入文件折分隔符 |
-v | 赋值一个用户定义变量 |
案例实操
## 数据准备
[bd@localServer ~]$ sudo cp /etc/passwd ./
root:x:0:0:root:/root:/bin/bash
### 搜索passwd文件以root关键字开头的所有行,并输出该行的第7列。
[bd@localServer ~]$ awk -F : '/^root/{print $7}' passwd
/bin/bash
### 搜索passwd文件以root关键字开头的所有行,并输出该行的第1列和第7列,中间以“,”号分割。
[bd@localServer ~]$ awk -F : '/^root/{print $1","$7}' passwd
root,/bin/bash
### 只显示/etc/passwd的第一列和第七列,以逗号分割,且在所有行前面添加列名user,shell在最后一行添加"test,/bin/shuai"。
[bd@localServer ~]$ awk -F : 'BEGIN{print "user, shell"} {print $1","$7} END{print "dahaige,/bin/zuishuai"}' passwd
user, shell
root,/bin/bash
bin,/sbin/nologin
...
bd,/bin/bash
test,/bin/shuai
#### 注意:BEGIN 在所有数据读取行之前执行;END 在所有数据执行之后执行。
### 将passwd文件中的用户id增加数值1并输出
[bd@localServer ~]$ awk -v i=1 -F : '{print $3+i}' passwd
1
2
3
4
...
awk的内置变量
变量 | 说明 |
---|---|
FILENAME | 文件名 |
NR | 已读的记录数 |
NF | 浏览记录的域的个数(切割后,列的个数) |
案例实操
#### 统计passwd文件名,每行的行号,每行的列数
[bd@localServer ~]$ awk -F : '{print "filename:" FILENAME ", linenumber:" NR ",columns:" NF}' passwd
filename:passwd, linenumber:1,columns:7
filename:passwd, linenumber:2,columns:7
filename:passwd, linenumber:3,columns:7
...
#### 切割IP
[bd@localServer ~]$ ifconfig eth0 | grep "inet addr" | awk -F : '{print $2}' | awk -F " " '{print $1}'
192.168.1.102
#### 查询sed.txt中空行所在的行号
[bd@localServer ~]$ awk '/^$/{print NR}' sed.txt
5
版权声明
本文为[魔笛Love]所创,转载请带上原文链接,感谢
https://blog.csdn.net/clearlxj/article/details/121742591
边栏推荐
- The new MySQL table has a self increasing ID of 20 bits. The reason is
- Dancenn: overview of byte self-developed 100 billion scale file metadata storage system
- ◰ GL shader handler encapsulation
- Go language RPC communication
- 1-5 nodejs commonjs specification
- ◰GL-着色器处理程序封装
- [C#] 彻底搞明白深拷贝
- Do you really understand the principle of code scanning login?
- Document operation II (5000 word summary)
- ∑GL-透视投影矩阵的推导
猜你喜欢
信息摘要、数字签名、数字证书、对称加密与非对称加密详解
Use between nodejs modules
Do you really understand the principle of code scanning login?
Shell脚本——Shell编程规范及变量
True math problems in 1959 college entrance examination
Bytevcharts visual chart library, I have everything you want
Installing labellmg tutorial in Windows
Lock锁
VLAN高级技术,VLAN聚合,超级Super VLAN ,Sub VLAN
Quick install mongodb
随机推荐
Production environment——
Some problems encountered in recent programming 2021 / 9 / 8
Nacos + aspnetcore + Ocelot actual combat code
Promise (IV)
STM32__ 03 - beginner timer
Promise (III)
Document operation II (5000 word summary)
∑GL-透视投影矩阵的推导
线性代数感悟之1
1-4 configuration executable script of nodejs installation
PHP高效读大文件处理数据
Redis docker installation
Shell script -- shell programming specification and variables
Generation of barcode and QR code
Detailed explanation of Milvus 2.0 quality assurance system
Idea of batch manufacturing test data, with source code
Modify the test case name generated by DDT
ByteVCharts可视化图表库,你想要的我都有
自定义my_strcpy与库strcpy【模拟实现字符串相关函数】
Bytevcharts visual chart library, I have everything you want