标签:awk
1. 功能是打印所有输入行
awk ‘{print $0}
‘ f ilename
2. 打印输入文件第八行
awk ‘NR==8{print $0} ‘ f ilename
3.
用awk打印文件所有行的第一个字段
awk -F:‘{print $1} ‘ f ilename
4. 打印输入行总数
awk
‘BEGIN{num=0;} {num++;}END{print num} ‘ f ilename
awk ‘END{print NR}‘ f
ilename
5. 打印每行字段数
awk -F: ‘{print NF,$0} ‘ f ilename
6.
打印最后一行的最后一个字段的值
Awk -F: ‘END{print $NF} ‘ filename
7. 打印字段数大于等于4个的行
Awk
-F: ‘NF>=4{print $0} ’ f ilename
8. 打印文件所有字段的总数
Awk -F:
‘BEGIN{count=0}{count=count+NF:}{print count} ‘ f ilename
9. 打印UID在
30-40范围内的用户名
Awk -F: ‘$>=30&&S3<=40{print $1}‘ f
ilename
10.倒叙排列文件的所有字段
awk -f : ‘{for( i=NF;i>0:i--) }{ if ( i!=1}
{printf "%s: " ,$i};}else{printf ("%s\n" ,$i) ; }
#!/bin/awk
-f
BEGIN{
F=": "
}
{
for( i=NF;i>0;i--)
{
if(
i!=1)
{
printf ("%s: " ,$i)
}
Else
{
printf
("%s\n",$i)
}
}
}
11.打印5 到26 行
Awk -F:
‘NR>=5&&NR<=26{print} ‘ f ilename12.在文件顶部加上标题“Document“
Awk
‘BENGIN{print“Document}{print} ‘f ilename
13.隔行删除
Awk ‘{ if (NR%2==1)
{print } }‘ f ilename
14.打印字段数大于5的行的总数
Awk -F: ‘BEGIN{num=0; } {
if(NF>=5) {num++;}} END {print num;}‘ f ilename
15.编写一个
awk脚本,统计/dev中各类型文件数量
#!/bin/awk
-f
BEGIN{
ff=0
dd=0
bb=0
cc=0
pp=0
ss=0
ll=0
}
{
if($0
~/^-/)
{
ff++
}
if($0 ~/^p/)
{
pp++
}
if($0
~/^b/)
{
bb++
}
if($0 ~/^/)
{
cc++
}
if($0
~/^d/)
{
dd++
}
if($0 ~/^l/)
{
ll++
}
if($0
~/^s/)
{s++
}
}
END{
Print "f ile: ", f f
Print "directory: "
,dd
print" character: ",cc
print" block: " ,bb
print" link: "
,ll
print" sockt : ",ss
print" pipe: " ,pp
}
16.编写一个
awk脚本,读取IP来自一个文件,并且测试该IP地址
#!/bin/awk -f
{
if(system("ping-c 1 "
$0">/dev/null)==0)
{
Print $0 YES
}
else
{
Print $0
NO
}
}
17.编写一个 awk脚本,读取文件添加用户
#!/bin/awk -f
{
If
(system("useradd" $0 2>/dev/null) ==0)
{
Print "user: "
$0"add"
}
else
{
Print "user"$0"error"
}
}
18.编写一个
awk脚本,功能过滤出合法IP地址
#!/bin/awk -f
BEGIN{
FS=" : "
}
{
if(
1>0&&$1<255&&$2>=0&&$2<=255$3>=0&&$3<=255$4>=0&&$4<=255{
Print
$0
}
}
19.编写一个 awk脚本,功能是每行抽取第一个单词
#!/bin/awk -f
BEGIN{
FS="
[^a-Z]+"
}
{ f irst=0
f lag=0
for( i=1;i<=NF;i++)
{
If ($I
!=NULL}
{
if(f lag==0)
{
f irst=I
f lag=1
}
}
}
Print
$f irst
}
20.编写一个 awk脚本,功能是打印每行的第一个和最后一个单词
#!/bin/awk
-f
BEGIN{
FS=" [^a-Z]+"
}
{ f irst=0
f lag=0
last=0
for(
i=1;i<=NF;i++)
{
If ($I !=NULL}
{
last=i
if(f
lag==0)
{
f irst=I
f lag=1
}}
}
Print $f irst " " $last
}
本文出自 “小郑技术博客” 博客,请务必保留此出处http://ko178.blog.51cto.com/220419/1734417
标签:awk
原文地址:http://ko178.blog.51cto.com/220419/1734417