Hi On Thu, Dec 09, 2010 at 11:33:13AM -0500, Bernard Fay wrote: > Hi, > > I have long strings to parse which have permanent and variable information. > Somewhere in the strings we have something like ".... Handle: 0x12a7 > ....". Handle is permanent and 0x12a7 is variable. I wish to be able to > extract the variable part (0x12a7) and assign it to a variable. > > Does anyone have an idea how to extract this information? Beside the perl-proposal: it depends what you want to do then with the data... You can already do it with sed: The sed-script s/.*Handle: \(0x[0-9a-f]*\) .*/\1/ does exactly this. I tell sed: - s/..../.../: replace the expression between the first two slashes by the one between the second two - the ".*" means: arbitrary characters --- so the first and the last part are ignored - then i NEED the exact expression "Handle: " - after that, "0x" followed by an arbitrary long sequence of digits and letters a to f. This part ist "combined" (this is done by "\(...\)" and referenced as "first variable". - then this expression is replaces by this first variable:
Now, if you send your strings to the standard input of sed, it will write the variable into its output: echo "bla bla bla Handle: 0x12a7 bla bla bla" | sed -e 's/.*Handle: \(0x[0-9a-f]*\) .*/\1/' gives: 0x12a7 HTH, Axel -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20101209175829.ga...@axel