String search and generating file

 
Thread Tools Search this Thread
Homework and Emergencies Emergency UNIX and Linux Support String search and generating file
# 1  
Old 10-01-2009
String search and generating file

Hi Gurus,

I have a requirement as below

I have text file a.txt which contains

Code:
hi hello 
process update
status
Output for file Ok to Proceed no issues good
data arrangement

My requirement here is i need to read the file and check for the words
"OK to Proceed" and if it is available need to generate an indicator file called
"Go.txt"

IF else no file should not be generated.

Here one more thing to be considered is, file also contains "Not Ok to Proceed" sometimes if the process is not gone thru well.

Basically i need to generate an indicator file, if the process is OK by searching "Ok to Proceed" string or else not generating the file if it contains "Not ok to Proceed"

I am trying following code but not succesfull upto now


Code:
#!/bin/ksh
DFT_VALUE='OK to Proceed'
ACTUAL_VALUE=`egrep 'OK to Proceed' respectivefolder/a.txt`
if [$DFT_VALUE = $ACTUAL_VALUE] then
  touch a.txt
else
  exit
fi


Here my problem is how to get only the string from the file to comapre with the variable.

Any suggestions or code will be appreciated

Thanks in advance,
San

Thanks in Advance
Sandeep

Last edited by Franklin52; 10-02-2009 at 04:24 AM.. Reason: Please use code tags!
# 2  
Old 10-01-2009
You can search directly for your variables content by using the return-value of grep: if the string is found, grep returns 0, otherwise 1 (respectively non-null, according to the POSIX standard).

Therefore your code could be shortened to this:

Code:
#!/bin/ksh
DFT_VALUE='OK to Proceed'

if [ $(grep -q "${DFT_VALUE}" /path/to/file ; print - $?) -eq 0 ] then
     touch /path/to/a.txt
fi

exit 0

Still, there is a little problem: the string "Not OK" will be matched by the expression "OK" too. You will need a second grep to separate the "Not OK"s from the "OK"s.

Code:
#!/bin/ksh
DFT_VALUE='OK to Proceed'

if [ $(grep -q "Not ${DFT_VALUE}" /path/to/file ; print - $?) -gt 0 ] ; then
     if [ $(grep -q "${DFT_VALUE}" /path/to/file ; print - $?) -eq 0 ] ; then
          touch /path/to/a.txt
     fi
fi
exit 0

I hope this helps.

bakunin
# 3  
Old 10-02-2009
cat abc.txt
Code:
hi hello
process update
status
Output for file Ok to Proceed no issues good
data arrangement

cat xyz.txt
Code:
Output for file Not Ok to Proceed no issues good

This is assuming the file has only 1 instance either OK or not OK . If that is not the case add a flag and in the end touch the file depending on the val

Code:
cat abc.txt | perl -e 'while(<>){ chomp; my $line = $_ ;if ($line =~ m/.*Ok\s*to\s*Proceed/ && $line !~ m/Not Ok to Proceed/){ print "$line\n" ; `touch Go.txt`}}'

cat xyz.txt | perl -e 'while(<>){ chomp; my $line = $_ ;if ($line =~ m/.*Ok\s*to\s*Proceed/ && $line !~ m/Not Ok to Proceed/){ print "$line\n" ; `touch Go.txt`}}'

Cheers,

Last edited by Franklin52; 10-02-2009 at 04:27 AM.. Reason: Please use code tags!
# 4  
Old 10-02-2009
Code:
grep -E '^(.*[^N][^o][^t] )?Ok to Proceed' a.txt && touch Go.txt


Last edited by Neo; 10-02-2009 at 08:06 AM.. Reason: Code tags please!
# 5  
Old 10-04-2009
use following code:-

Code:
sed -n '/Ok to Proceed/ p' input_file | nawk '($0 !~ "Not") { "touch GO.txt" | getline }'

BR
# 6  
Old 10-05-2009
Hi

Thanks for the response.Sorry for late reply.

When i am executing that command its saying "illegal command grep with q "

when i replaced "q" with "s" missing operator

This is my o/p when i used the code you mentioned.

may be we have the old version of the UNIX
# 7  
Old 10-05-2009
What about using fgrep or -F flag?
Maybe something like this... If the fixed string "Not ok to proceed" is not found in the file, then just check if "ok to Proceed" exists; if it does, then generate the output.


Code:
if [[ `grep -Fi "Not ok to Proceed" ./a.txt` -ne 0 ]]
   then  
   if [[ `grep -ic "ok to Proceed"` ]]
   then
        touch go.txt
   fi  
fi


Try with fgrep instead of grep -F if it doesn't work properly.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Search partial string in a file and replace the string - UNIX

I have the below string which i need to compare with a file and replace this string in the file which matches closely. Can anyone help me on this. string(Scenario 1)- user::r--,user::ourfrd:r-- String(Scenario 2)- user::r-- File **** # file: /local/Desktop/myfile # owner: me # group:... (6 Replies)
Discussion started by: sarathy_a35
6 Replies

2. UNIX for Beginners Questions & Answers

Search a string and display its location on the entire string and make a text file

I want to search a small string in a large string and find the locations of the string. For this I used grep "string" -ob <file name where the large string is stored>. Now this gives me the locations of that string. Now how do I store these locations in a text file. Please use CODE tags as... (7 Replies)
Discussion started by: ANKIT ROY
7 Replies

3. UNIX for Dummies Questions & Answers

Search for a string,delete the line and replace with new string in a file

Hi Everyone, I have a requirement in ksh where i have a set of files in a directory. I need to search each and every file if a particular string is present in the file, delete that line and replace that line with another string expression in the same file. I am very new to unix. Kindly help... (10 Replies)
Discussion started by: Pradhikshan
10 Replies

4. Shell Programming and Scripting

Search string within a file and list common words from the line having the search string

Hi, Need your help for this scripting issue I have. I am not really good at this, so seeking your help. I have a file looking similar to this: Hello, i am human and name=ABCD. How are you? Hello, i am human and name=PQRS. I am good. Hello, i am human and name=ABCD. Good bye. Hello, i... (12 Replies)
Discussion started by: royzlife
12 Replies

5. Shell Programming and Scripting

Search a string in a text file and add another string at the end of line

Dear All I am having a text file which is having more than 200 lines. EX: 001010122 12000 BIB 12000 11200 1200003 001010122 2000 AND 12000 11200 1200003 001010122 12000 KVB 12000 11200 1200003 In the above file i want to search for string KVB... (5 Replies)
Discussion started by: suryanarayana
5 Replies

6. Shell Programming and Scripting

Search a string in a text file and add another string at the particular position of a line

I am having a text file which is having more than 200 lines. EX: 001010122 12000 BIB 12000 11200 1200003 001010122 2000 AND 12000 11200 1200003 001010122 12000 KVB 12000 11200 1200003 In the above file i want to search for string KVB and add/replace... (1 Reply)
Discussion started by: suryanarayana
1 Replies

7. Shell Programming and Scripting

Search several string and convert into a single line for each search string using awk command AIX?.

I need to search the file using strings "Request Type" , " Request Method" , "Response Type" and by using result set find the xml tags and convert into a single line?. below are the scenarios. Cat test Nov 10, 2012 5:17:53 AM INFO: Request Type Line 1.... (5 Replies)
Discussion started by: laknar
5 Replies

8. Shell Programming and Scripting

search string in a file and retrieve 10 lines including string line

Hi Guys, I am trying to write a perl script to search a string "Name" in the file "FILE" and also want to create a new file and push the searched string Name line along with 10 lines following the same. can anyone of you please let me know how to go about it ? (8 Replies)
Discussion started by: sukrish
8 Replies

9. Shell Programming and Scripting

Search for string in a file and extract another string to a variable

Hi, guys. I have one question: I need to search for a string in a file, and then extract another string from the file and assign it to a variable. For example: the contents of the file (group) is below: ... ftp:x:23: mail:x:34 ... testing:x:2001 sales:x:2002 development:x:2003 ...... (6 Replies)
Discussion started by: daikeyang
6 Replies

10. Shell Programming and Scripting

appending string to text file based on search string

Hi, I need to append string "Hi" to the beginning of the lines containing some specific string. How can I achieve that? Please help. Malay (1 Reply)
Discussion started by: malaymaru
1 Replies
Login or Register to Ask a Question