如何在Linux中使用awk命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Linux中使用awk命令相关的知识,希望对你有一定的参考价值。
参考技术A awk:用于一行中分成数个“字段”来处理。适合处理小型数据。
运行模式:awk
'条件类型1动作1
条件类型2动作2
...'
filename
#
last
|
awk
$1
"\t"
$3'
<==
查看登录者的数据,只显示登录名和ip地址,并以[tab]隔开
awk
的内置变量
变量名称
代表的含义
NF
每一行($0)拥有的字段总数
NR
当前
awk
所处理的是
“第几行”
数据
FS
当前分隔符,默认空格键
awk
的逻辑运算符
运算单元
代表含义
>
大于
<
小于
>=
大于或等于
<=
小于或等于
==
等于
!=
不等于
范例:
cat
/etc/passwd
|
awk
'FS=":"
$3
<
10
$1
"\t"
$3'
<==
文件/etc/passwd是以":"分隔的,查看第三栏小于10的数据,并且只显示帐号与第三栏
以上是我对awk的总结,希望对你有帮助,是我写的哦,不是复制的。 参考技术B 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;elseprint $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=71’ >> b.txt
tail -f access.log|awk ‘NF=7′ OFS=’\t’ >> b.txt
cut -d”,” -f3-6 urfile本回答被提问者采纳
linux中awk处理文本时如何让它不区分大小写?
比如:
1、.......Iphone......
2、.......iPhone......
3、.......IPhone......
4、.......Android......
5、.......IPHONE......
我想提取所有包含iPhone的内容,该怎么写命令?
真要用awk,那就在模式匹配的地方用下面的方式:
awk '/[iI][pP][hH][oO][nN][eE]/print' filename追问
因为很多数据是错开的,比如第一行的iPhone在$6,第二行的却在$7。我实际上是想拿iPhone做参照来抽取iPhone后面那一个域的数据。请问这样有没有其他的方法?谢谢了
本回答被提问者采纳 参考技术B IGNORECASE=1 参考技术C \b[Ii][Pp][Hh][Oo][Nn][Ee]\b?以上是关于如何在Linux中使用awk命令的主要内容,如果未能解决你的问题,请参考以下文章