Extracting a variable listing

Dr. A. Haakh bugReporter at Haakh.de
Wed Aug 18 15:15:24 UTC 2010


Jack L. Stone schrieb:
> Sorry to return to the trough again for script help, but find excellent
> answers here when all else fails, and I am not very good at it.
>
> Trying to develop a script (non-bash) that will extract a variable list of
> content on a daily basis so I can add it to a master list. Once I have
> this, I can do the rest of the scripting needed.
>
> Here's an example of the need.
>
> The content I need will always fall beneath a row of pound signs, and there
> is content above that row I don't want, like this:
>
> bunch of rows I don't need here
> ############################### <--- the top of stuff needed
> row1
> row2
> row3
> row4
> etc, etc....
>
> So, I need a way to pull out the rows (which vary daily) beneath the pound
> row and place it in a new temp file that I can "cat >>" into a master file.
>
> Appreciate your kind help once again.... (beers on me!)
>
> All the best!
> Jack
>
> (^_^)
> Happy trails,
> Jack L. Stone
>
> System Admin
> Sage-america
awk is your friend .-)
this script does exactly what you need
extract.awk
---------------
/^#####+$/ {
    print $0;
    getline;
    print ">>>>>",$0
    while (match($0, "^[[:print:]]+$")) {
        print $0;
        getline;
    }
}
---------------
You can still adjust the pattern in match to suit your need.
invoke it with
awk -f extract.awk yourfile

Andreas



More information about the freebsd-questions mailing list