分页: 1 / 1

又有一个问题要请教大家

发表于 : 2009-09-20 13:39
bfdxw
我有一个文本文件格式是

代码: 全选

aaaa bbbb cccc dddd
darw opqq eeee cdrr
hymi  yybb eeee powq
...
rdaw poqa eeee adsq
dddd cccc bbbb aaaa
如果第三列连续相同超过10行
就把这几行删除(不管多少行,只要超过10行就删除)
这个怎么写啊,awk真难学

Re: 又有一个问题要请教大家

发表于 : 2009-09-20 16:56
O_O_BOT

代码: 全选

#!/usr/bin/awk -f
BEGIN {
    prev3 = "";
    cache = "";
    prevcnt = 0;
}
{
    if ($3 != prev3 ) {
        if (prevcnt <= 10 && cache != "") {
            print cache;
        }
        prev3 = $3;
        prevcnt = 1;
        cache = $0;
    } else {
        cache = cache "\n" $0;
        prevcnt++;
    }
}
END {
    if (prevcnt <= 10) {
        print cache;
    }
}

Re: 又有一个问题要请教大家

发表于 : 2009-09-20 17:26
bfdxw
LS真是热心人
太感谢了

最后一个问题,呃..我还有一个文本文件(我文本文件咋就这么多呢)
[abc] [def] [ghi] [jkl]
我用
awk {print$2}以后得到[def]
但是我不想要括号
能不能不用管道,awk一句话做出来得到def

Re: 又有一个问题要请教大家

发表于 : 2009-09-20 17:55
bfdxw
自己解决了... :em06

Re: 又有一个问题要请教大家

发表于 : 2009-09-20 18:06
O_O_BOT
echo '[abc] [def] [ghi]' | awk '{print gensub(/\[(.*)\]/,"\\1","1",$2)}
echo '[abc] [def] [ghi]' | awk '{gsub(/[][]/,"",$2);print $2}'
或者改IFS
echo '[abc] [def] [ghi]' | awk -F'[][]' '{print $4}'

Re: 又有一个问题要请教大家

发表于 : 2009-11-15 13:20
tusooa

代码: 全选

awk '{print $2}' | sed -e '^[/s [  g' -e ']$/s ]  g'