awk extract multiple groups from each line

后端 未结 4 2219
盖世英雄少女心
盖世英雄少女心 2020-12-06 12:51

How do I perform action on all matching groups when the pattern matches multiple times in a line?

To illustrate, I want to search for /Hello! (\\d+)/ an

4条回答
  •  醉话见心
    2020-12-06 13:02

    This is a simple syntax, and every awk (nawk, mawk, gawk, etc) can use this.

    {
        while (match($0, /Hello! [0-9]+/)) {
            pattern = substr($0, RSTART, RLENGTH);
            sub(/Hello! /, "", pattern);
            print pattern;
            $0 = substr($0, RSTART + RLENGTH);
        }
    }
    

提交回复
热议问题