Sponsored Content
Top Forums Shell Programming and Scripting NULL Search String & File Name Post 302552923 by manishdivs on Tuesday 6th of September 2011 06:29:00 AM
Old 09-06-2011
NULL Search String & File Name

Hi All,

I am writting a Sell Script, that takes Search String & File Name from the terminal and check for Null Status. If either is NULL then pgm should quit.


I wrote the following:

Code:
bash-3.2$ cat null_status_of_parameters.sh
#!/bin/sh
#WASS that takes Search String & File Name from the terminal and check for Null Status. If either is NULL then pgm should quit.
echo "Please Enter the Search String:"
read pat
if [ -Z $pat ]
  then
     echo "Pattern entered is Empty"
     exit
  else
       echo "Please enter the File name:"
       read file
     if [ -Z $file ]
        then
           echo "File name not passed"
           exit
        else
           echo "Following is the grepped output:"
           grep $pat $file
      fi
fi
bash-3.2$


Output:

Code:
bash-3.2$ ./null_status_of_parameters.sh
Please Enter the Search String:
Manish
./null_status_of_parameters.sh: line 8: [: -Z: unary operator expected
Please enter the File name:
text_file
./null_status_of_parameters.sh: line 15: [: -Z: unary operator expected

Following is the grepped output:

Code:
Hi all.... I am Manish, I am learning UNIX.
bash-3.2$



Could anyone please let me know why I am getting the error (highlighted in red above) even I am getting the desired output.

Many thanks in advance.

Thank you,
Manish

Last edited by radoulov; 09-06-2011 at 07:47 AM.. Reason: Code tags.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

String Search & Replace

Hey, I want to have a C program which, for an existing file supplied by the command line argument (E.g. File1.txt) replaces all the occurrences of the words: "We” or “we” by “I” “a” by “the” “A” by “The”. Then print the replaced file. All other characters of the file are to be left... (1 Reply)
Discussion started by: IwishIknewC
1 Replies

2. Shell Programming and Scripting

how to insert line break + string in vi (search & replace )

Hello all i have big test file that has allot of structure text something like this : <foo1 *.html> <blah action> somthing 1 somthing 2 </blah> </foo1 > now i will like to insert 2 more lines of text below the <blah action> so it will be like : <foo1... (1 Reply)
Discussion started by: umen
1 Replies

3. Shell Programming and Scripting

check for not null string in file

Hi, If, in a text file a string is expected at a certain fixed position(for eg at position 5 or from 5-10 on every line) how to check whether data is present on that position or not? Thnx in advance (6 Replies)
Discussion started by: misenkiser
6 Replies

4. UNIX for Dummies Questions & Answers

vi search & replace ... having '/' in string - problem.

I want to carry out search & replace for the paths mentioned in the file with the help of vi. 'abc/' to be replaced by 'abc/data' When I use command in vi as below - %s/abc//abc/data/g it gives me an error. How we should deal with '/' part in string for vi search & replace? ... (6 Replies)
Discussion started by: videsh77
6 Replies

5. Shell Programming and Scripting

How do I search first&second string & copy all content between them to other file?

Hi All, How do I search first string & second string and copy all content between them from one file to another file? Please help me.. Thanks In Advance. Regards, Pankaj (12 Replies)
Discussion started by: pankajp
12 Replies

6. UNIX for Dummies Questions & Answers

Search for & edit rows & columns in data file and pipe

Dear unix gurus, I have a data file with header information about a subject and also 3 columns of n rows of data on various items he owns. The data file looks something like this: adam peter blah blah blah blah blah blah car 01 30 200 02 31 400 03 57 121 .. .. .. .. .. .. n y... (8 Replies)
Discussion started by: tintin72
8 Replies

7. Shell Programming and Scripting

Insert string 'NULL' where there is a null value

I have an input file having 7 fields delimited by , eg : 1,ABC,hg,1,2,34,3 2,hj,YU,2,3,4, 3,JU,kl,4,5,7, 4,JK,KJ,3,56,4,5 The seventh field here in some lines is empty, whereas the other lines there is a value. How do I insert string NULL at this location (7th loc) for these lines where... (8 Replies)
Discussion started by: zilch
8 Replies

8. Shell Programming and Scripting

To search null and char in file

Hi guys, I want to know how i can search null value and character value in a feed file. my file has Pipe delimted records. for eg: 1|12|xxx|yyy . . . N records I know the the which column null and char occurs does it has for eg 3rd column which i can obtain by awk $3 and (7 Replies)
Discussion started by: rohit_shinez
7 Replies

9. 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

10. AIX

Size of file /dev/./null 2>&1

Hello Can I just remove/delete flile ? rw-r--r-- 1 root system 2385088512 Jun 30 21:25 /dev/null 2>&1 size of this flile is 2274.75 m and fill up my filesystem: Filesystem MB blocks Used Free %Used Mounted on /dev/hd4 2560.00 2558.59 1.41 100% / (10 Replies)
Discussion started by: primo102
10 Replies
Mail::Box::Search::Grep(3pm)				User Contributed Perl Documentation			      Mail::Box::Search::Grep(3pm)

NAME
Mail::Box::Search::Grep - select messages within a mail box like grep does INHERITANCE
Mail::Box::Search::Grep is a Mail::Box::Search is a Mail::Reporter SYNOPSIS
use Mail::Box::Manager; my $mgr = Mail::Box::Manager->new; my $folder = $mgr->open('Inbox'); my $filter = Mail::Box::Search::Grep->new ( label => 'selected' , in => 'BODY', match => qr/abc?d*e/ ); my @msgs = $filter->search($folder); my $filter = Mail::Box::Search::Grep->new ( field => 'To' , match => $my_email ); if($filter->search($message)) {...} DESCRIPTION
Try to find some text strings in the header and footer of messages. Various ways to limit the search to certain header fields, the whole header, only the body, the whole message, but even binary multiparts, are provided for. The name grep is derived from the UNIX tool grep, which means: "Get Regular Expression and Print". Although you can search using regular expressions (the Perl way of them), you do not have to print those as result. METHODS
Constructors Mail::Box::Search::Grep->new(OPTIONS) Create a UNIX-grep like search filter. -Option --Defined in --Default binaries Mail::Box::Search <false> decode Mail::Box::Search <true> delayed Mail::Box::Search <true> deleted Mail::Box::Search <false> deliver undef field undef in Mail::Box::Search <$field ? 'HEAD' : C<'BODY'>> label Mail::Box::Search undef limit Mail::Box::Search 0 log Mail::Reporter 'WARNINGS' logical Mail::Box::Search 'REPLACE' match <required> multiparts Mail::Box::Search <true> trace Mail::Reporter 'WARNINGS' binaries => BOOLEAN decode => BOOLEAN delayed => BOOLEAN deleted => BOOLEAN deliver => undef|CODE|'DELETE'|LABEL|'PRINT'|REF-ARRAY Store the details about where the match was found. The search may take much longer when this feature is enabled. When an ARRAY is specified it will contain a list of references to hashes. Each hash contains the information of one match. A match in a header line will result in a line with fields "message", "part", and "field", where the field is a Mail::Message::Field object. When the match is in the body the hash will contain a "message", "part", "linenr", and "line". In case of a CODE reference, that routine is called for each match. The first argument is this search object and the second a reference to same hash as would be stored in the array. The "PRINT" will call printMatchedHead() or printMatchedBody() when any matching header resp body line was found. The output is minimized by not reprinting the message info on multiple matches in the same message. "DELETE" will flag the message to be deleted in case of a match. When a multipart's part is matched, the whole message will be flagged for deletion. field => undef|STRING|REGEX|CODE Not valid in combination with "in" set to "BODY". The STRING is one full field name (case-insensitive). Use a REGEX to select more than one header line to be scanned. CODE is a routine which is called for each field in the header. The CODE is called with the header as first, and the field as second argument. If the CODE returns true, the message is selected. in => 'HEAD'|'BODY'|'MESSAGE' label => STRING limit => NUMBER log => LEVEL logical => 'REPLACE'|'AND'|'OR'|'NOT'|'AND NOT'|'OR NOT' match => STRING|REGEX|CODE The pattern to be search for can be a REGular EXpression, or a STRING. In both cases, the match succeeds if it is found anywhere within the selected fields. With a CODE reference, that function will be called each field or body-line. When the result is true, the details are delivered. The call formats are $code->($head, $field); # for HEAD searches $code->($body, $linenr, $line); # for BODY searches The $head resp $body are one message's head resp. body object. The $field is a header line which matches. The $line and $linenr tell the matching line in the body. Be warned that when you search in "MESSAGE" the code must accept both formats. multiparts => BOOLEAN trace => LEVEL Searching $obj->inBody(PART, BODY) See "Searching" in Mail::Box::Search $obj->inHead(PART, HEAD) See "Searching" in Mail::Box::Search $obj->search(FOLDER|THREAD|MESSAGE|ARRAY-OF-MESSAGES) See "Searching" in Mail::Box::Search $obj->searchPart(PART) See "Searching" in Mail::Box::Search The Results $obj->printMatch([FILEHANDLE], MATCH) $obj->printMatchedBody(FILEHANDLE, MATCH) $obj->printMatchedHead(FILEHANDLE, MATCH) Error handling $obj->AUTOLOAD() See "Error handling" in Mail::Reporter $obj->addReport(OBJECT) See "Error handling" in Mail::Reporter $obj->defaultTrace([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK]) Mail::Box::Search::Grep->defaultTrace([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK]) See "Error handling" in Mail::Reporter $obj->errors() See "Error handling" in Mail::Reporter $obj->log([LEVEL [,STRINGS]]) Mail::Box::Search::Grep->log([LEVEL [,STRINGS]]) See "Error handling" in Mail::Reporter $obj->logPriority(LEVEL) Mail::Box::Search::Grep->logPriority(LEVEL) See "Error handling" in Mail::Reporter $obj->logSettings() See "Error handling" in Mail::Reporter $obj->notImplemented() See "Error handling" in Mail::Reporter $obj->report([LEVEL]) See "Error handling" in Mail::Reporter $obj->reportAll([LEVEL]) See "Error handling" in Mail::Reporter $obj->trace([LEVEL]) See "Error handling" in Mail::Reporter $obj->warnings() See "Error handling" in Mail::Reporter Cleanup $obj->DESTROY() See "Cleanup" in Mail::Reporter $obj->inGlobalDestruction() See "Cleanup" in Mail::Reporter DIAGNOSTICS
Error: Package $package does not implement $method. Fatal error: the specific package (or one of its superclasses) does not implement this method where it should. This message means that some other related classes do implement this method however the class at hand does not. Probably you should investigate this and probably inform the author of the package. SEE ALSO
This module is part of Mail-Box distribution version 2.105, built on May 07, 2012. Website: http://perl.overmeer.net/mailbox/ LICENSE
Copyrights 2001-2012 by [Mark Overmeer]. For other contributors see ChangeLog. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html perl v5.14.2 2012-05-07 Mail::Box::Search::Grep(3pm)
All times are GMT -4. The time now is 05:20 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy