Sponsored Content
Top Forums Shell Programming and Scripting Extracting text between two strings Post 302432798 by JamesForeman on Sunday 27th of June 2010 01:52:42 AM
Old 06-27-2010
Extracting text between two strings

Hi,

I've looked at a few existing posts on this, but they don't seem to work for my inputs.

I have a text file where I want to extract all the text between two strings, every time that occurs.

Eg my input file is

Anna said that she would fetch the bucket.
Anna and Ben moved the bucket.
I would not like Anna to do it.


I was expecting that

Code:
sed -n '/Anna/,/would/p' inputfile > outputfile

would give me

said that she
and Ben moved the bucket.
I

But instead I get back

Anna said that she would fetch the bucket.
Anna and Ben moved the bucket.
I would not like Anna to do it.

What am I missing?

Thanks
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Extracting strings

Hi, How do I extract the bytes size string from the ls -l command. (1 Reply)
Discussion started by: hugow
1 Replies

2. Shell Programming and Scripting

Help with extracting strings from a file

I want to collect the characters from 1-10 and 20-30 from each line of the file and take them in a file in the following format.Can someone help me with this : string1,string2 string1,string2 string1,string2 : : : : (7 Replies)
Discussion started by: cmsdelhi
7 Replies

3. Shell Programming and Scripting

Extracting the lines between 2 strings of a file

Hi, I have a sql file and i need to extract the table names used in the sql file using a unix script. If i can extract the lines between the keywords 'FROM' and 'WHERE' in the file, my job is done. can somebody tell me how to do this using a shell script. If u can just let me know, how to... (2 Replies)
Discussion started by: babloo
2 Replies

4. Shell Programming and Scripting

extracting a set of strings from a text file

i have textfiles that contain a series of lines that look like this: string0 .................................................... column3a column4a string1**384y0439 ..................................... column3b column4b... (2 Replies)
Discussion started by: Deanne
2 Replies

5. Shell Programming and Scripting

extracting numbers from strings

Hello all, I am being dumb with this and I know there is a simple solution. I have a file with the follwing lines bc stuff (more)...............123 bc stuffagain (moretoo)............0 bc stuffyetagain (morehere)......34 failed L3 thing..............1 failed this... (2 Replies)
Discussion started by: gobi
2 Replies

6. Shell Programming and Scripting

Extracting text between two strings, first instance only

There are a lot of ways to extract text from between two strings, but what if those strings occur multiple times and you only want the text from the first two strings? I can't seem to find anything to work here. I'm using sed to process the text after it's extracted, so I prefer a sed answer, but... (4 Replies)
Discussion started by: fubaya
4 Replies

7. Shell Programming and Scripting

Extracting text between two constant strings

Hi All, I have a file whose common patter is like this: .I 1 .U 87049087 .S Some text here too .M This is a text .T Some another text here .P Name of the book .W Some lines of more text. This text needs to be extracted. .A more text goes here too .I 2 (2 Replies)
Discussion started by: shoaibjameel123
2 Replies

8. Shell Programming and Scripting

Extracting text between two strings, multiple instances

Hi experts, Ive got a text file which has the following text which will occur in this format at least one time: +=========================>> Some stuff that evreryone should knnow other stufsjdokajkajokajda aijhjajcdjajcisajcqsqdqwdqad <<=========================+ It is likely that... (8 Replies)
Discussion started by: martin0852
8 Replies

9. UNIX for Dummies Questions & Answers

Extracting 22-character strings from text using sed/awk?

Here is my task, I feel sure this can be accomplished with see/awk but can't seem to figure out how. I have large flat file from which I need to extract every case of a pairing of characters (GG) in this case PLUS the previous 20 characters. The output should be a list (which I plan to make... (17 Replies)
Discussion started by: Twinklefingers
17 Replies

10. UNIX for Beginners Questions & Answers

Extracting strings at various positions of text file

Hi Team - I hope everyone has been well! I export a file from one of our source systems that gives me more information than I need. The way the file outputs, I need to extract certain strings at different positions on the file and echo them to another file. I can do this in batch easily,... (2 Replies)
Discussion started by: SIMMS7400
2 Replies
strextract(1)						      General Commands Manual						     strextract(1)

NAME
strextract - batch string extraction SYNOPSIS
strextract [-p patternfile] [-i ignorefile] [-d] [source-program...] OPTIONS
Ignore text strings specified in ignorefile. By default, the strextract command searches for ignorefile in the current working directory, your home directory, and /usr/lib/nls. If you omit the -i option, strextract recognizes all strings specified in the patterns file. Use patternfile to match strings in the input source program. By default, the command searches for the pattern file in the current working directory, your home direc- tory, and finally /usr/lib/nls. If you omit the -p option, the strextract command uses a default patterns file that is stored in /usr/lib/nls/patterns. Disables warnings of duplicate strings. If you omit the -d option, strextract prints warnings of duplicate strings in your source program. DESCRIPTION
The strextract command extracts text strings from source programs. This command also writes the string it extracts to a message text file. The message text file contains the text for each message extracted from your input source program. The strextract command names the file by appending to the name of the input source program. In the source-program argument, you name one or more source programs from which you want messages extracted. The strextract command does not extract messages from source programs included using the #include directive. Therefore, you might want a source program and all the source programs it includes on a single strextract command line. You can create a patterns file (as specified by patternfile ) to control how the strextract command extracts text. The patterns file is divided into several sections, each of which is identified by a keyword. The keyword must start at the beginning of a new line, and its first character must be a dollar sign ($). Following the identifier, you specify a number of patterns. Each pattern begins on a new line and follows the regular expression syntax you use in the regexp(3) routine. For more information on the patterns file, see the patterns(4) reference page. In addition to the patterns file, you can create a file that indicates strings that extract ignores. Each line in this ignore file con- tains a single string to be ignored that follows the syntax of the regexp(3) routine. When you invoke the strextract command, it reads the patterns file and the file that contains strings it ignores. You can specify a pat- terns file and an ignore file on the strextract command line. Otherwise, the strextract command matches all strings and uses the default patterns file. If strextract finds strings which match the ERROR directive in the pattern file, it reports the strings to standard error (stderr.) but does not write the string to the message file. After running strextract, you can edit the message text file to remove text strings which do not need translating before running strmerge. It is recommended that you use extract command as a visual front end to the strextract command rather than running strextract directly. RESTRICTIONS
Given the default pattern file, you cannot cause strextract to ignore strings in comments that are longer than one line. You can specify only one rewrite string for all classes of pattern matches. The strextract command does not extract strings from files include with #include directive. You must run the strextract commands on these files separately. % strextract -p c_patterns prog.c prog2.c % vi prog.str % strmerge -p c_patterns prog.c prog2.c % gencat prog.cat prog.msg prog2.msg % vi nl_prog.c % vi nl_prog2.c % cc nl_prog.c nl_prog2.c In this example, the strextract command uses the c_patterns file to determine which strings to match. The input source programs are named prog.c and prog2.c. If you need to remove any of the messages or extract one of the created strings, edit the resulting message file, prog.str. Under no condi- tions should you add to this file. Doing so could result in unpredictable behavior. You issue the strmerge command to replace the extracted strings with calls to the message catalog. In response to this command, strmerge, creates the source message catalogs, prog.msg and prog2.msg, and the output source programs, nl_prog.c and nl_prog2.c. You must edit nl_prog.c and nl_prog2.c to include the appropriate catopen and catclose function calls. The gencat command creates a message catalog and the cc command creates an executable program. SEE ALSO
gencat(1), extract(1), strmerge(1), regexp(3), catopen(3), patterns(4) Writing Software for the International Market strextract(1)
All times are GMT -4. The time now is 01:43 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy