Parsing text


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Parsing text
# 1  
Old 02-11-2009
Parsing text

Hello all,

I have some text formatted as follows

Name: John doe
Company:

Address 1: 7 times the headache
Address 2:
City: my city
State/Province: confusion
Zip/Postalcode: 12345

and I'm trying to figure out how I could extract the data after the colon so that the result would be

John doe
7 times the headache
my city
confusion
12345

I am not really familiar with shell scripting I am a real newbie

thanks
Mike
# 2  
Old 02-11-2009
One of many solutions ..
Code:
sed 's/*:\(.*\)/\1/' file

# 3  
Old 02-11-2009
thats almost

wow that's cool

let me try to go through this code

sed is the shell command

s/ = search
*: = anything then a colon
\(.*\) = the back slashes tell sed not to process the bracket ?
and the .* means anything after the colon
/\1/ and this means only one line ?

how would I modify this to ignore empty lines and lines where after the colon there is nothing

also lets say I didn't want a line that was formatted in the same manner ?

thanks again
Mike
# 4  
Old 02-11-2009
Code:
awk -F: ' { if ( NF == 2 && $2 != ""  ) { print substr($2,2)}  } ' FILENAME

Choose only lines where one ":" exists and
after ":" is not null
print field after ": " (substr command)
# 5  
Old 02-11-2009
Quote:
Originally Posted by mcgrailm
how would I modify this to ignore empty lines and lines where after the colon there is nothing
Code:
awk -F: '$2{print substr($2,2)}' file

sed 's/^.*://;/^$/d;s/^ //' file

For sed you should read Sed - An Introduction and Tutorial

Last edited by danmero; 02-12-2009 at 12:27 AM.. Reason: Add sed solution.
# 6  
Old 02-11-2009
Code:
echo "Zip/Postalcode: 12345" | sed 's/^.*://'

# 7  
Old 02-12-2009
almost there

so I've got almost everything I need here is the code I'm using
Code:
awk -F: ' { if (  $1 != "Email" && $2 !=""  && $2 != " " ) { print substr($2,2)}  }' '/private/tmp/shipping.txt'

only the program that is writing the text file is leaving something in the blank lines so my result looks like this
"

Jane Doe

7 times the headache

Some City
Connecticut
06032

"
I am on a mac and writing the file using apple script alternatively if I could just hand awk the text rather than specifying a file that may fix the problem


thanks for all your help
Mike
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Text parsing

Hi All! Is it possible to convert text file: to: ? (6 Replies)
Discussion started by: y77
6 Replies

2. Shell Programming and Scripting

Parsing blocked text

I do have a flat text file that are divided into blocks. Each block is demimited by '='. I would like to parse certain numbers and letters. This is the format of the file I have. It has thousands of such blocks >A B 1, 100 TTTT 100 95 >C D 1, 95 GHJKL = >A B 1, 72 GHUJKLO 72 84 >C D... (3 Replies)
Discussion started by: Kanja
3 Replies

3. Shell Programming and Scripting

Parsing text file

Hi Friends, I am back for the second round today - :D My input text file is this way Home friends friendship meter Tools Mirrors Downloads My Data About Us Help My own results BLAT Search Results ACTIONS QUERY SCORE START END QSIZE IDENTITY CHRO STRAND ... (7 Replies)
Discussion started by: jacobs.smith
7 Replies

4. Shell Programming and Scripting

Parsing text file

I'm totally stumped with how to handle this huge text file I'm trying to deal with. I really need some help! Here is what is looks like: ab1ba67c331a3d731396322fad8dd71a3b627f89359827697645c806091c40b9 0.2 812a3c3684310045f1cb3157bf5eebc4379804e98c82b56f3944564e7bf5dab5 0.6 0.6... (3 Replies)
Discussion started by: comp8765
3 Replies

5. Programming

Parsing a Text file using C++

I was trying to parse the text file, which will looks like this ###XYZABC#### ############ int = 4 char = 1 float = 1 . . ############ like this my text file will contains lots of entries and I need to store these entries in the map eg. map.first = int and map.second = 4 same way I... (5 Replies)
Discussion started by: agupta2
5 Replies

6. Shell Programming and Scripting

Help with text/number parsing

Hello I have a file that contains 10 rows as below: "ID" "DP" "ID=GRMZM2G015073_T01" "23.6044288292005" "ID=GRMZM2G119852_T01" "59.7782287606723" "ID=GRMZM2G100242_T02" "61.4167813736184" "ID=GRMZM2G046274_T01" "6.63061838134219" "ID=GRMZM2G046274_T02" ... (5 Replies)
Discussion started by: cs_novice
5 Replies

7. Shell Programming and Scripting

Need help parsing a text file

I have a text file: router1#sh ip blah blah | incl --- Gi2/8 10.60.4.181 --- 10.60.123.175 11 0000 0000 355K Gi2/8 10.60.83.28 --- 224.10.10.26 11 F9FF 3840 154K Gi2/8 10.60.83.198 --- ... (1 Reply)
Discussion started by: streetfighter2
1 Replies

8. Shell Programming and Scripting

Parsing text from file

Any ideas? 1)loop through text file 2)extract everything between SOL and EOL 3)output files, for example: 123.txt and 124.txt for the file below So far I have: sed -n "/SOL/,/EOL/{p;/EOL/q;}" file Here is an example of my text file. SOL-123.go something goes here something goes... (0 Replies)
Discussion started by: ndnkyd
0 Replies

9. Shell Programming and Scripting

Text File Parsing

Hey Guys.I am a newbie on Bash Shell Scripting and Perl.And I have a question about file parsing. I have a log file which contains reports about a communication device.I need to take some of the reports from the log file.Its hard to explain the issue.but shortly I can say that, the reports has a... (2 Replies)
Discussion started by: Djlethal
2 Replies

10. UNIX for Dummies Questions & Answers

Text parsing question

How would I split a file based on the location of a string, basically I want all entries above the string unix in this example 1 2 3 4 unix 5 6 7 Thanks, Chuck (3 Replies)
Discussion started by: 98_1LE
3 Replies
Login or Register to Ask a Question