Extract pattern from text line


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Extract pattern from text line
# 1  
Old 10-14-2008
PHP Extract pattern from text line

Gents,
from these sample lines:

ZUCR.MI ZUCCHI SPA RISP NC 2,5000 6 ott 0,0000
ZV.MI ZIGNAGO VETRO 3,6475 16:36 Up 0,0075

is it possible to get this:

ZUCR.MI 2,5000
ZV.MI 3,6475

i.e. the first field, a separator and the first decimal number?
(in Europe we use commas for decimal numbers, so €1.000,00 = one thousand).

Regards.
# 2  
Old 10-14-2008
Code:
awk '{ printf ("%s ",$1)
         for(i=2; i<=NF; i++)
           { if(index($i,"<")>0) {print $i} }
       } ' inputfilename

# 3  
Old 10-14-2008
Code:
awk '{printf ("%s ",$1);for(i=2;++i<=NF;){if(int($i)>0){print $i;next}}}' file

# 4  
Old 10-14-2008
Thank you. The second command seems to work but not for all the instances. For example, the last lines in the source file are:

Code:
VVE.MI VIAGGI DEL VENTAGLIO 0,2500 13 ott Up 0,0088
XPR.MI EXPRIVIA 0,7653 13 ott Up 0,1210
ZUC.MI ZUCCHI SPA 1,4010 13 ott Up 0,0010
ZUCR.MI ZUCCHI SPA RISP NC 2,5000 6 ott 0,0000
ZV.MI ZIGNAGO VETRO 3,6500 13 ott Up 0,0100

and the output of the command is:

Code:
VVE.MI 13
XPR.MI 13
ZUC.MI 1,4010
ZUCR.MI 2,5000
ZV.MI 3,6500

So in the first 2 cases the output is the day of the month (13) and not the price (0,2500 or 0,7653).

Last edited by vampirodolce; 10-14-2008 at 09:33 AM..
# 5  
Old 10-14-2008
Hammer & Screwdriver Just because I figured there had to be another way without awk...

Perhaps not elegant, but it appears to work...

Code:
> sample="ZUCR.MI ZUCCHI SPA RISP NC 2,5000 6 ott 0,0000"
> s2=`echo $sample | cut -d" " -f1` ; s3=`echo $sample | cut -d" " -f2- | tr -d "[:alpha:]" | tr -s " " | tr " " "\n" | grep "," | head -1 | tail -1` ; echo $s2 $s3 
ZUCR.MI 2,5000
>


Last edited by joeyg; 10-14-2008 at 09:42 AM.. Reason: slight correction to command line
# 6  
Old 10-14-2008
Hammer & Screwdriver Execution from my commands

Code:
> cat file10
VVE.MI VIAGGI DEL VENTAGLIO 0,2500 13 ott Up 0,0088
XPR.MI EXPRIVIA 0,7653 13 ott Up 0,1210
ZUC.MI ZUCCHI SPA 1,4010 13 ott Up 0,0010
ZUCR.MI ZUCCHI SPA RISP NC 2,5000 6 ott 0,0000
ZV.MI ZIGNAGO VETRO 3,6500 13 ott Up 0,0100

> cat calc_file10 
while read sample
   do
   s2=`echo $sample | cut -d" " -f1`  
   s3=`echo $sample | cut -d" " -f2- | tr -d "[:alpha:]" | tr -s " " | tr " " "\n" | grep "," | head -1 | tail -1` 
   echo $s2 $s3 
done <file10

> calc_file10 
VVE.MI 0,2500
XPR.MI 0,7653
ZUC.MI 1,4010
ZUCR.MI 2,5000
ZV.MI 3,6500
>

# 7  
Old 10-14-2008
Code:
perl -nle'$,=" ";print/(\S*).*?(\d+,\d*)/' filename


Code:
awk '{
  for (i=1; i<=NF; i++)
    if ($i ~ /^[0-9][0-9]*,/) {
	  print $1, $i
	  break
	  }
  }' filename


Last edited by radoulov; 10-14-2008 at 10:04 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Extract pattern from text

Hi all, I got a txt here and I need to extract all D 8888 44 and D 8888 43 + next field =",g("en")];f._sn&&(f._sn= "og."+f._sn);for(var n in f)l.push("&"),l.push(g(n)),l.push("="),l.push(g(f));l.push("&emsg=");l.push(g(d.name+":"+d.message));var m=l.join("");Ea(m)&&(m=m.substr(0,2E3));c=m;var... (5 Replies)
Discussion started by: stinkefisch
5 Replies

2. Shell Programming and Scripting

Extract all the sentences from a text file that matches a pattern list

Hi I have a big text file. I want to extract all the sentences that matches at least 70% (seventy percent) of the words from each sentence based on a word list called A. Say the format of the text file is as given below: This is the first sentence which consists of fifteen words... (4 Replies)
Discussion started by: my_Perl
4 Replies

3. Shell Programming and Scripting

Extract specific line in an html file starting and ending with specific pattern to a text file

Hi This is my first post and I'm just a beginner. So please be nice to me. I have a couple of html files where a pattern beginning with "http://www.site.com" and ending with "/resource.dat" is present on every 241st line. How do I extract this to a new text file? I have tried sed -n 241,241p... (13 Replies)
Discussion started by: dejavo
13 Replies

4. Shell Programming and Scripting

Search for a pattern,extract value(s) from next line, extract lines having those extracted value(s)

I have hundreds of files to process. In each file I need to look for a pattern then extract value(s) from next line and then search for value(s) selected from point (2) in the same file at a specific position. HEADER ELECTRON TRANSPORT 18-MAR-98 1A7V TITLE CYTOCHROME... (7 Replies)
Discussion started by: AshwaniSharma09
7 Replies

5. Shell Programming and Scripting

get the fifth line of a text file into a shell script and trim the line to extract a WORD

FOLKS , i have a text file that is generated automatically of an another korn shell script, i want to bring in the fifth line of the text file in to my korn shell script and look for a particular word in the line . Can you all share some thoughts on this one. thanks... Venu (3 Replies)
Discussion started by: venu
3 Replies

6. Shell Programming and Scripting

extract unique pattern from large text file

Hi All, I am trying to extract data from a large text file , I want to extract lines which contains a five digit number followed by a hyphen , like 12345- , i tried with egrep ,eg : egrep "+" text.txt but which returns all the lines which contains any number of digits followed by hyhen ,... (19 Replies)
Discussion started by: shijujoe
19 Replies

7. Shell Programming and Scripting

sed: Find start of pattern and extract text to end of line, including the pattern

This is my first post, please be nice. I have tried to google and read different tutorials. The task at hand is: Input file input.txt (example) abc123defhij-E-1234jslo 456ujs-W-abXjklp From this file the task is to grep the -E- and -W- strings that are unique and write a new file... (5 Replies)
Discussion started by: TestTomas
5 Replies

8. Shell Programming and Scripting

Extract pattern from text line

The text line has the following formats: what.ever.bla.bla.C01G06.BLA.BLA2 what.ever.bla.bla.C11G33.BLA.BLA2 what.ever.bla.bla.01x03.BLA.BLA2 what.ever.bla.bla.03x05.BLA.BLA2 what.ever.bla.bla.Part01.BLA.BLA2 and other similar ones, I need a way to select the "what.ever.bla.bla" part out... (4 Replies)
Discussion started by: TehOne
4 Replies

9. Shell Programming and Scripting

Extract pattern from text line

Hi, the text line looks like this: "test1" " " "test2" "test3" "test4" "10" "test 10 12" "00:05:58" "filename.bin" "3.3MB" "/dir/name" "18459" what's the best way to select any of it? So I can for example get only the time or size and so on. I was trying awk -F""" '{print $N}' but... (3 Replies)
Discussion started by: TehOne
3 Replies

10. Shell Programming and Scripting

awk: need to extract a line before a pattern

Hello , I need your help to extract a line in a big file , and this line is always 11 lines before a specific pattern . Do you know a way via Awk ? Thanks in advance npn35 (17 Replies)
Discussion started by: npn35
17 Replies
Login or Register to Ask a Question