可以对海量的数据进行提取。
-v对提取的内容进行取反。
-n显示出行号。
-w精确匹配:
-i:忽略大小写:
-E正则匹配:
cut命令:
-d指定分隔符,-f指定截取区域:
截取第一列到第三列:
截取第二列到最后一列
也可以使用管道符的形式:
不加-d看看默认是什么样子的:
截取不出来,因为没有空格,所以就把全部的内容返回回来了。
-c命令:
截取2-9行
eg:比如领导想叫你截取linux上面所有可登陆普通用户
/etc/passwd目录下存放了很多用户的信息。
/bin/bash下是可登录的用户。 /nologin是不可登录的系统用户。
但是root是超级用户,我们也不想把root提取出来,所以我们这里使用grep的-v取反命令:
awk命令
输出:
df -h linux中的磁盘分区使用率
我们可以用这个命令打印出使用率。
bc计算器,如果整数是0,不会显示出来,会自动省略,但是借助awk就可以把整数位的0显示出来
了。
-f可以指定分隔符。
用我们之前的cut命令也是可以的。
我们也可以指定从什么符号开始:
这个和刚才的返回结果相同。
END符号
end符号的作用是在最后命令执行完毕才会打印出来。
awk的最后一个符号,NR符号:
指定打印第几行的内容。
也可以打印第2-5行的内容:
我们之前学过nl打印行号。
我们也可以使用awk取出第几行到第几行的行号。
以上就是awk的大概应用。
-n:
以打印第二行为例:
d:
这里的删除不会对源文件产生影响,只会是把显示出的内容进行减少显示。
a:插入新的内容(下面)
对源文件依旧没有影响。
i:在上面添加新的内容:
c:替换:
依旧不影响原文件。
s:取代指定内容:
-i添加内容,改变原文件,尽量不要使用:
我们现在去查找100%的行:
-e:做多个动作:
这里是先把内容输出再去修改输出的内容,所以对字符串的改动并不会在页面上显示出来。
所以我们现在来示范一下先改变内容再打印输出:
这些内容经常会一起使用。