awk学习总结
时间:2006-06-13 来源:kai0200
1 碰到一个问题是用户提供了一个文本包含
用户名:身份证号:单位
test:111222331222098:gongsi
要求用户名做为登陆名,身份证号的后三位做为登陆密码。
awk -F: '{ printf "%s:%s:%s\n",$1,$2,substr( $2, length($3)-2,length($3) ) }' txt
2 碰到的一个问题是awk处理两个数据文件
cat tmp1
qwe:rtgbh52800op
poil:7851fghjj874 cat tmp2
poil:999rrr:66666
qwe:uytppp:77777 要求处理结果为 qwe:rtgbh52800op:77777
poil:7851fghjj874:66666 #!/bin/awk -f BEGIN {
FS=":";
i=1;
while((getline<"tmp2")>0)
{F[i]=$1;S[i]=$3;i++}
line=i;
} {
for(j=1;j<=line;j++)
{ if($1==F[j])
printf "%s:%s:%s\n",$1,$2,S[j];
} }
END {
print"END";
} #awk -f add.awk tmp1 处理完成
poil:7851fghjj874 cat tmp2
poil:999rrr:66666
qwe:uytppp:77777 要求处理结果为 qwe:rtgbh52800op:77777
poil:7851fghjj874:66666 #!/bin/awk -f BEGIN {
FS=":";
i=1;
while((getline<"tmp2")>0)
{F[i]=$1;S[i]=$3;i++}
line=i;
} {
for(j=1;j<=line;j++)
{ if($1==F[j])
printf "%s:%s:%s\n",$1,$2,S[j];
} }
END {
print"END";
} #awk -f add.awk tmp1 处理完成
相关阅读 更多 +