探索字符截取命令之---awk命令

简介: 这里给大家提个建议,在学习awk命令之前先掌握printf命令的用法。printf '输出类型输出格式' 输出内容输出类型:%ns 输出字符串%ni 输出整数%m.nf 输出小数输出格式:-n 换行-t tab键简单的说,awk的出现就是为了弥补cut命令的不足,对于用空格制作的表格中,cut命令不再有用。

这里给大家提个建议,在学习awk命令之前先掌握printf命令的用法。

printf '输出类型输出格式' 输出内容

输出类型:

%ns 输出字符串

%ni 输出整数

%m.nf 输出小数


输出格式:

-n 换行

-t tab键



简单的说,awk的出现就是为了弥补cut命令的不足,对于用空格制作的表格中,cut命令不再有用。

例如:查看磁盘使用率,用cut命令截取字符串就不起作用的

wKioL1fjl8-xuOd4AADrxpHay3A274.png-wh_50

这时候,awk命令正好就弥补了cut命令在这方面的缺陷。

例如:截取根目录的使用率

df -h | grep "/dev/sda2" | awk '{printf $5}' | cut -d "%" -f 1

wKioL1fjmyDjNKwdAADinNuN_BY531.png-wh_50


看明白了吗?

有人可能会说没有,那么没关系,我们下面好好的来讲一讲到底awk该怎么用

awk '条件1{动作1}条件2{动作2}...' 文件名

① 一般关系表达式做条件(BEGIN 和 END)

② > < >= <=等连接的条件


下面搞一个BEING和END的来练练手

wKioL1fjn4jgz7pEAADWvYiKA3A767.png-wh_50


END用法:

wKiom1fjn8-CuEIhAADNYfAn7Ig775.png-wh_50



还有一个很重要的就是FS内置变量:

例如:利用awk命令截取/etc/passwd中user1的第一列和第五列的字符串

cat /etc/passwd | grep "/bin/bash" | grep -v "root" | grep "user1"  \

| awk 'BEGIN{FS=":"}{printf $1 "\t" $3 "\n"}'

wKiom1fjoRCyzdfBAADGnRWCZMk820.png-wh_50


注意:awk自身还存在一个参数-F,用于指定分隔符。

例如:我们要打印/etc/passwd中的第一列,怎么操作?

wKioL1hMySTBR2vPAAAxKIKg-Zc486.png

相关文章
|
6月前
|
Perl
在Awk中,直接通过文件作为输入
在Awk中,直接通过文件作为输入
77 2
管道符 | shift + 回车上面内容,统计行数 ls -l /user/bin | wc -l,连续过滤cat test.txt | grep itcast | grep itheima
管道符 | shift + 回车上面内容,统计行数 ls -l /user/bin | wc -l,连续过滤cat test.txt | grep itcast | grep itheima
|
6月前
|
数据处理 Perl
AWK 命令20条
AWK 命令示例:显示文件内容、按列打印、计数、使用分隔符、模式匹配、条件语句、数学计算、数组操作、字符串处理、循环、输出格式控制、删除重复行、统计行词字符、分组统计、格式化输出、字段联合、自定义分隔符、字符串截取和调用外部命令。AWK 是强大的文本分析工具,适用于各种数据处理任务。
125 1
|
Shell
【Shell编程】字符截取命令cut、printf命令
【Shell编程】字符截取命令cut、printf命令
126 0
|
Unix Shell Linux
两个实用的shell命令:sed和awk用法
两个实用的shell命令:sed和awk用法
128 0
|
Perl
在awk中执行外部命令
在awk中执行外部命令 1、借助system/getline删除 awk '{cmd="rm "$0;system(cmd)}' filename awk '{cmd="rm "$0;cmd|getline }' filename man awk里面有关于getline的说明。
2138 0
|
Shell
shell中的cat和文件分界符(<<EOF)
在shell中,文件分界符(通常写成EOF,你也可以写成FOE或者其他任何字符串)紧跟在 hahaha > EOF root@ribbonchen-laptop:~# cat out.txt ha haha hahaha 3、换一种写法 root@ribbonchen-laptop:~# cat>out.
1731 0
下一篇
无影云桌面