LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   AWK Scripting (https://www.linuxquestions.org/questions/linux-newbie-8/awk-scripting-495867/)

horikka 10-26-2006 04:41 PM

AWK Scripting
 
Hello all...

I am quite a begginner with Linux and I need your help, hope you can bare with me.

I want to use AWK for windows for an required action:
The issue follows:

I have a txt file with a very very long line containing multiples of strings like: bulkbulkSTRINGxxxxxxxxxxxxOTHERSTRINGbulkbulkbulk

The x are letters, 12 of them and I want to have an AWK (grep if possible) to strip to another text file the 12 letters (xxxxxxxxxxxxxx) between the given strings.

I keep trying and no success..

Your help will be greatly appreciated.

Horia.

homey 10-26-2006 05:08 PM

If the file has a consistant location of the xxxxx field. Is it separated by spaces, colon ( : ) or something like that?
An actual snip of the file would be more usefull.

Bebo 10-26-2006 05:23 PM

Is the use of awk or grep necessary?

If the position of the x string on each line is fixed, it is easily done with cut, like so:
Code:

cut -c13-24 file
if the x string is positioned from character 13 to character 24.

Otherwise, if the position is not fixed, but rather between STRING and OTHERSTRING as you write, then sed is good;
Code:

sed 's|^.*STRING\(.\{12\}\)OTHERSTRING.*$|\1|' file

Tinkster 10-26-2006 06:32 PM

Or in awk (as originally requested): :}
Code:

awk '{print gensub(/.+STRING(.+)OTHERSTRING.+/, "\\1",1)}' file

Cheers,
Tink

fotoguy 10-26-2006 06:55 PM

SED is really great to use, here is a site with some useful examples of SED:

http://www.student.northpark.edu/pem...d/sed1line.txt

Probably the most common commands I use for bash scripting would be AWK, GREP, SED, CUT and the pipe (|) command. Learn how to combine these commands and you have some powerful text manipulation tools.

jschiwal 10-26-2006 07:10 PM

In your first message you said that you want to use "AWK for Windows". If you are using Microsoft windows, I would highly recommend installing Cygwin. This will allow you to work in the bash shell and give you all the handy text utilities. With Cygwin/X you can also run X Windows programs such as xpdf or xdvi.

I think that you wanted to add the pattern to another file, which can be done with simple redirection, ie >file2 or >>file2, at the end of the line. Grep also has a 'w" command that can print the output to a file instead. So you could extract different patterns to different files.

If you can download the source for the awk package ( and the awk-doc package ), you can produce a manual and book on AWK and AWK programming. The package should have a "make ps" or "make dvi" or "make pdf" target to produce the books from the source.

Good Luck.


All times are GMT -5. The time now is 07:10 PM.