如何在Linux中使用awk命令

 我来答
柴半段干珠星
2019-09-22 · TA获得超过3675个赞
知道大有可为答主
回答量:3137
采纳率:31%
帮助的人:173万
展开全部
awk:用于一行中分成数个“字段”来处理。适合处理
小型数据。
运行模式:awk
'条件类型1{动作1}
条件类型2{动作2}
...'
filename
#
last
|
awk
'{print
$1
"\t"
$3}'
<==
查看登录者的数据,只显示登录名和ip地址,并以[tab]隔开
awk
的内置变量
变量名称
代表的含义
NF
每一行($0)拥有的字段总数
NR
当前
awk
所处理的是
“第几行”
数据
FS
当前分隔符,默认空格键
awk
的逻辑运算符
运算单元
代表含义
>
大于
<
小于
>=
大于或等于
<=
小于或等于
==
等于
!=
不等于
范例:
cat
/etc/passwd
|
awk
'{FS=":"}
$3
<
10
{print
$1
"\t"
$3}'
<==
文件/etc/passwd是以":"分隔的,查看第三栏小于10的数据,并且只显示帐号与第三栏
以上是我对awk的总结,希望对你有帮助,是我写的哦,不是复制的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wallcopper
2017-09-30 · TA获得超过3447个赞
知道大有可为答主
回答量:1986
采纳率:86%
帮助的人:1818万
展开全部
awk实例
1、cat /etc/passwd|awk -F: '{print $1}'
2、linux的awk一般都是gawk,/bin/awk -> gawk
3、awk ‘/abc/’ file.txt 显示文件中包含abc行。类似grep abc a.txt
4、awk ‘{print NR,NF,$1,$NF,}’ file.txt按空格分隔列,显示当前记录号、域数和每一行的第一列和最后一列。
-F参数可以设置分割参数,例如按:分割
awk -F: ‘{print $1}’ /etc/passwd
或者cat file|awk -F “|” ‘{print $1}’
5、awk编程语言
cat v.txt|awk ‘{print length($1)}’
6、awk中使用NR和FNR,一般在awk处理多个文件时,NR==FNR才有意义
NF 当前记录中的字段数。
NR 当前记录数。
FNR同NR,但相对于当前文件。
awk ‘{print NR,FNR}’ test.txt test2.txt
awk ‘{if(NR==FNR){a[FNR]=$1;}else{print $1,a[FNR]}}’ b.txt a.txt
7、打印奇数行与偶数行
awk ‘NR%2’ test.txt
awk ‘!(NR%2)’ test.txt
8、杀死tomcat的stop.sh脚本
#!/bin/sh
ps -ef| grep tomcat |grep -v grep | awk ‘{print $2}’ |xargs kill -9
9、打印前7列
cat a.txt|awk ‘{NF=7}1’ >> b.txt
tail -f access.log|awk ‘NF=7′ OFS=’\t’ >> b.txt
cut -d”,” -f3-6 urfile
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式