Not need to use grep, sed can search pattern and awk will better solution.
But, if we rest in shell:
Code:
$ cat file.sh
#!/bin/bash
while IFS=':' read m1 m2 p1 r1
do
xx=$(sed -n "/$m1/,/$m2/{/$p1/p}" file.log)
if [[ -z "$xx" ]]
then
echo "All report deployed properly"
else
echo "$r1"
echo "$xx"
fi
done <file.pat
Code:
$ cat file.pat
Main Report:Main Report End:Unable to find:List of report failed to deploy in Main Report due to Null pointer exception
Main Report:Main Report End:Unable to add:List of report failed to deploy in Main Report due to xml issue
Second Report:Second Report End:Unable to add:List of report failed to deploy in Second Report due to xml issue
Second Report:Second Report End:Unable to find:List of report failed to deploy in Second Report due to Null pointer exception
Code:
$ cat file.log
aaaaaaaaa
bbbbbbbbbbb
Main Report
Unable to add file 1
Unable to add file 3
Unable to find file 2
Unable to find file 5
Main Report End
ttttttttttttt
uuuuuuuuuuu
Second Report
Unable to add file 56
Unable to add file 89
Unable to find file 484
Unable to find file 899
Second Report End
Code:
$ ./file.sh
List of report failed to deploy in Main Report due to Null pointer exception
Unable to find file 2
Unable to find file 5
List of report failed to deploy in Main Report due to xml issue
Unable to add file 1
Unable to add file 3
List of report failed to deploy in Second Report due to xml issue
Unable to add file 56
Unable to add file 89
List of report failed to deploy in Second Report due to Null pointer exception
Unable to find file 484
Unable to find file 899
HI ,
I have a list1 which consists of data that i have to search and a list2 which has the files that need to be searched .So basically i am using list1 on list2 to see if list1 data is present if found replace it .I have written the code using foreach loop for each list .This is taking the... (1 Reply)
Can anyone please let me know how do I reduce files into a specific number of files by cat'ing files?
For example:
15 files must be reduced to 1 or 5 or 9 (possible values 1 to 14) (5 Replies)
I am getting a few gzip files into a folder by doing ftp to another server. Once I get them I move them to another location .But before that I need to make sure each gzip is not more than 5000 lines and split it up . The files I get are anywhere from 500 lines to 10000 lines in them and is in gzip... (4 Replies)
how to count the total number of lines of all the files under a directory using perl script..
I mean if I have 10 files under a directory then I want to count the total number of lines of all the 10 files contain. Please help me in writing a perl script on this. (5 Replies)
Hi friends,
at last i finish my script to find the status of the URL , in this code i used all the status codes, because of this it take too much of length. with the help of wiki only i find all the status codes.
Status codes in HTTP
#!/bin/bash
timevar=`date +%d-%m-%Y_%H.%M.%S` #--... (6 Replies)
Hey all
Im looking to reduce the number of cpus available on a certain node in our cluster available for jobs using SGE.
i.e. we have one node that has 24 cpus available for jobs on SGE, i would like to reduce that to 16. Thanks (1 Reply)
Hi
I have 1000 files labelled data1.txt through data1000.txt. I want to write a script that prints out the number of lines in each txt file and outputs it in the following format:
Column 1: number of data file (1 through 1000)
Column 2: number of lines in the text file
Thanks! (2 Replies)
Hi everyone,
I have two files, namely:
file1:
file1Col1Row1;file1Col2Row1;file1Col3Row1
file1Col1Row2;file1Col2Row2;file1Col3Row2
file1Col1Row3;file1Col2Row3;file1Col3Row3file2:
file2Col1Row1;file2Col2Row1;file2Col3Row1
file2Col1Row2;file2Col2Row2;file2Col3Row2... (0 Replies)
I have the following code to count the number of how many times the name occurred in one file. The code is working fine and the output is exactly what I want. The problem is the real code has more than 50 names in function listname which cause function name to have more than 50 case ,and function... (14 Replies)
I have a directory of files, I can show the number of lines in each file and order them from lowest to highest with:
wc -l *|sort
15263 Image.txt
16401 reference.txt
40459 richtexteditor.txt
How can I also print the number of unique lines in each file?
15263 1401 Image.txt
16401... (15 Replies)
Discussion started by: spacegoose
15 Replies
LEARN ABOUT DEBIAN
plan9-grep
GREP(1) General Commands Manual GREP(1)NAME
grep, g - search a file for a pattern
SYNOPSIS
grep [ option ... ] pattern [ file ... ]
g [ option ... ] pattern [ file ... ]
DESCRIPTION
Grep searches the input files (standard input default) for lines that match the pattern, a regular expression as defined in regexp(7) with
the addition of a newline character as an alternative (substitute for |) with lowest precedence. Normally, each line matching the pattern
is `selected', and each selected line is copied to the standard output. The options are
-c Print only a count of matching lines.
-h Do not print file name tags (headers) with output lines.
-e The following argument is taken as a pattern. This option makes it easy to specify patterns that might confuse argument parsing,
such as -n.
-i Ignore alphabetic case distinctions. The implementation folds into lower case all letters in the pattern and input before interpre-
tation. Matched lines are printed in their original form.
-l (ell) Print the names of files with selected lines; don't print the lines.
-L Print the names of files with no selected lines; the converse of -l.
-n Mark each printed line with its line number counted in its file.
-s Produce no output, but return status.
-v Reverse: print lines that do not match the pattern.
-f The pattern argument is the name of a file containing regular expressions one per line.
-b Don't buffer the output: write each output line as soon as it is discovered.
Output lines are tagged by file name when there is more than one input file. (To force this tagging, include /dev/null as a file name
argument.)
Care should be taken when using the shell metacharacters $*[^|()= and newline in pattern; it is safest to enclose the entire expression in
single quotes '...'. An expression starting with '*' will treat the rest of the expression as literal characters.
G invokes grep with -n and forces tagging of output lines by file name. If no files are listed, it searches all files matching
*.C *.b *.c *.h *.m *.cc *.java *.cgi *.pl *.py *.tex *.ms
SOURCE
/src/cmd/grep
/bin/g
SEE ALSO ed(1), awk(1), sed(1), sam(1), regexp(7)DIAGNOSTICS
Exit status is null if any lines are selected, or non-null when no lines are selected or an error occurs.
GREP(1)