Search for a pattern


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Search for a pattern
# 15  
Old 02-22-2008
Quote:
Originally Posted by Franklin52
Place the exit command after the loop not within it.

Code:
MIN=2
MAX=7
for file in *.txt
do
  awk -v min=$MIN -v max=$MAX -v patt=$pattern_da_cercare '
  BEGIN {RS=" |\n"}
  $0 == patt {n++}
  END {
  if(n >= min && n <= max) {print FILENAME " : " n}
  }
  ' "$file"
done

exit 0

Regards
I'm sorry, have pasted incorrectly the code, exit 0 was already after the loop
# 16  
Old 02-23-2008
Data what is not working with this?

Code:
#! /bin/bash
pattern="good"
rm sctfile.raw 2>/dev/null
for zf in *.dat; do
  sed 's/$pattern/$pattern \n/g' $zf >tempf
  numpat=$(cat tempf | grep "$pattern" | wc -l)
  echo $numpat","$zf >>sctfile.raw
done
sort -nr sctfile.raw >sctfile.srt

I suspect that the sed is not forcing the newline; thus count not correct. The count only reflects the number of original lines where the $pattern was found. Please confirm.
# 17  
Old 02-23-2008
Question

Quote:
Originally Posted by joeyg
Code:
#! /bin/bash
pattern="good"
rm sctfile.raw 2>/dev/null
for zf in *.dat; do
  sed 's/$pattern/$pattern \n/g' $zf >tempf
  numpat=$(cat tempf | grep "$pattern" | wc -l)
  echo $numpat","$zf >>sctfile.raw
done
sort -nr sctfile.raw >sctfile.srt

I suspect that the sed is not forcing the newline; thus count not correct. The count only reflects the number of original lines where the $pattern was found. Please confirm.
The code is:
Code:
rm sctfile.raw 2>/dev/null	# Elimina i msg di err

for zf in *.txt; do


sed 's/$pattern_da_cercare/$pattern_da_cercare \n/g' $zf >tempf
# numpat=$(cat $zf | grep "$pattern_da_cercare" | wc -l)
numpat=$(cat tempf | grep "$pattern_da_cercare" | wc -l)



echo $numpat","$zf >>sctfile.raw
done

sort -nr sctfile.raw >sctfile.srt

The error message now is:
cat: tempf: No such file or directory
sed: numpat=: No such file or directory
sed: 13\rnumpat=: No such file or directory
sed: 0: No such file or directory


I don't understand why, Smilie
# 18  
Old 02-23-2008
Quote:
Originally Posted by DNAx86
The error codes are:
./conta_occorrenze: line 157: syntax error near unexpected token `exit'
./conta_occorrenze: line 157: `exit 0'
It seems that you have unexpected characters in the script.
Have you ftp the script in binary mode?
Do you see some characters like ^M in vi?

Regards
# 19  
Old 02-23-2008
Quote:
Originally Posted by Franklin52
It seems that you have unexpected characters in the script.
Have you ftp the script in binary mode?
Do you see some characters like ^M in vi?

Regards
I don't understand what you talk about in your 1st qyestion, do you talk about the FTP protocol?

>Do you see some characters like ^M in vi?
I did't edited the script with VI, I used XCODE and text editor (Mac OS X software)
But when I edited the script with VI....
YES I see ^M characters.

What does it mean?
# 20  
Old 02-23-2008
ladies and gentleman now I don't have errors any more!

The code that I use now is:


Code:
rm sctfile.raw 2>/dev/null	# Elimina i msg di err

for zf in *.txt; do


sed 's/$pattern_da_cercare/$pattern_da_cercare \n/g' $zf >tempf
numpat=$(cat tempf | grep "$pattern_da_cercare" | wc -l)


echo $numpat","$zf >>sctfile.raw
done

sort -nr sctfile.raw >sctfile.srt

exit 0

BUT It still not count more then 1 word if in that line the pattern have already been found.

How can I modify it?
# 21  
Old 02-23-2008
Quote:
Originally Posted by DNAx86
I don't understand what you talk about in your 1st qyestion, do you talk about the FTP protocol?

>Do you see some characters like ^M in vi?
I did't edited the script with VI, I used XCODE and text editor (Mac OS X software)
But when I edited the script with VI....
YES I see ^M characters.

What does it mean?
If you transfer a file in binary mode it also copies the hex x0D characters at the end of the lines.
In DOS/Windows text files a line ends with CR/LF while on *nix systems a line ends with a LF (hex 0A).
You can converse the file if you have the utility dos2ux on your system.
An alternative is:
Code:
tr -d \\r < win.txt > unix.txt

Regards
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Grep/awk using a begin search pattern and end search pattern

I have this fileA TEST FILE ABC this file contains ABC; TEST FILE DGHT this file contains DGHT; TEST FILE 123 this file contains ABC, this file contains DEF, this file contains XYZ, this file contains KLM ; I want to have a fileZ that has only (begin search pattern for will be... (2 Replies)
Discussion started by: vbabz
2 Replies

2. Shell Programming and Scripting

Search pattern on logfile and search for day/dates and skip duplicate lines if any

Hi, I've written a script to search for an Oracle ORA- error on a log file, print that line and the .trc file associated with it as well as the dateline of when I assumed the error occured. In most it is the first dateline previous to the error. Unfortunately, this is not a fool proof script.... (2 Replies)
Discussion started by: newbie_01
2 Replies

3. Shell Programming and Scripting

How to use sed to search a particular pattern in a file backward after a pattern is matched.?

Hi, I have two files file1.txt and file2.txt. Please see the attachments. In file2.txt (which actually is a diff output between two versions of file1.txt.), I extract the pattern corresponding to 1172c1172. Now ,In file1.txt I have to search for this pattern 1172c1172 and if found, I have to... (9 Replies)
Discussion started by: saurabh kumar
9 Replies

4. Shell Programming and Scripting

Search for a pattern in a String file and count the occurance of each pattern

I am trying to search a file for a patterns ERR- in a file and return a count for each of the error reported Input file is a free flowing file without any format example of output ERR-00001=5 .... ERR-01010=10 ..... ERR-99999=10 (4 Replies)
Discussion started by: swayam123
4 Replies

5. Shell Programming and Scripting

Need one liner to search pattern and print everything expect 6 lines from where pattern match made

i need to search for a pattern from a big file and print everything expect the next 6 lines from where the pattern match was made. (8 Replies)
Discussion started by: chidori
8 Replies

6. Shell Programming and Scripting

Print a pattern between the xml tags based on a search pattern

Hi all, I am trying to extract the values ( text between the xml tags) based on the Order Number. here is the sample input <?xml version="1.0" encoding="UTF-8"?> <NJCustomer> <Header> <MessageIdentifier>Y504173382</MessageIdentifier> ... (13 Replies)
Discussion started by: oky
13 Replies

7. Shell Programming and Scripting

search a pattern and if pattern found insert new pattern at the begining

I am trying to do some thing like this .. In a file , if pattern found insert new pattern at the begining of the line containing the pattern. example: in a file I have this. gtrow0unit1/gctunit_crrownorth_stage5_outnet_feedthru_pin if i find feedthru_pin want to insert !! at the... (7 Replies)
Discussion started by: pitagi
7 Replies

8. UNIX for Dummies Questions & Answers

modify a particular pattern starting from second line of the search pattern

Hi, I think you ppl did not get my question correctly, let me explain I have 1.txt with following entries as shown: 0152364|134444|10.20.30.40|015236433 0233654|122555|10.20.30.50|023365433 ** ** ** In file 2.txt I have the following entries as shown: ... (1 Reply)
Discussion started by: imas
1 Replies

9. UNIX for Dummies Questions & Answers

modify a particular pattern starting from second line of the search pattern

Hi, I am new to this forum and i would like to get help in this issue. I have a file 1.txt as shown: apple banana orange apple grapes banana orange grapes orange .... Now i would like to search for pattern say apple or orange and then put a # at the beginning of the pattern... (2 Replies)
Discussion started by: imas
2 Replies

10. Shell Programming and Scripting

Search file for pattern and grab some lines before pattern

I want to search a file for a string and then if the string is found I need the line that the string is on - but also the previous two lines from the file (that the pattern will not be found in) This is on solaris Can you help? (2 Replies)
Discussion started by: frustrated1
2 Replies
Login or Register to Ask a Question