23,124
社区成员
发帖
与我相关
我的任务
分享
# test.awk
BEGIN{
#myarray[-1]=ARGV[1];# awk -f test.awk data
#print myarray[-1]; # print data
}
{
cnt=0;
for(i=0; i<NF; ++i){
# debug
# printf("%c ",$(i+1));
if($(i+1)=="x"){
++cnt;
}
}
#printf("\n");
myarray[cnt]=$0;
}
END{
n=asorti(myarray, dest);# asorti(gawk3.1.2)
for(i=1; i<=n; ++i){
print myarray[dest[i]]; #print value of array
}
#for(i=0; i<=NF; ++i){
# if(myarray[i]){
# print myarray[i];
# }
#}
}
# test.awk
#BEGIN{
# myarray[-1]=ARGV[1];# awk -f test.awk data
# print myarray[-1]; # print data
#}
{
cnt=0;
for(i=0; i<NF; ++i){
# debug
# printf("%c ",$(i+1));
if($(i+1)=="x"){
++cnt;
}
}
#printf("\n");
myarray[cnt]=$0;
}
END{
#n=asorti(myarray);# asorti(gawk3.1.2)
#for(i=1; i<=n; ++i){
# print myarray[i]; #print value of array
#}
for(i=0; i<=NF; ++i){
if(myarray[i]){
print myarray[i];
}
}
}
测试:data.txt
a b x c d
b x c x x
c x x d v
awk -f test.awk data
输出:
a b x c d
c x x d v
b x c x x
# test.awk
BEGIN{
cnt=0;
}
{
for(i=0; i<NF; ++i){
# printf("%c ",$(i+1));
if($(i+1)=="x"){
++cnt;
}
}
#printf("\n");
myarray[$cnt]=$0;
}
END{
n=asort(myarray);
for(i=1; i<=n; ++i){
print myarray[i];
}
}