The dot matches lines which contain a character. If you want a non-blank character, change the dot to something like [^ ]
The awk script handles the whole file in one go; by the time your shell regains control over execution, "pline" will no longer be meaningful.
Generally, to get both output on standard output and a value into a variable from a single child process is extremely tricky. My suggestion would be to make the awk script print its output in such a form that you can then unambiguously identify which lines are "plines" when reading the output back into the shell script. Something like
Do you see what I'm getting at? Make awk print a single extra identifier at the start of every line, so your shell script can read that and discard it, but then handle the different types of lines differently depending on what the value of the discarded identifier was.
Last edited by era; 04-23-2008 at 08:37 AM..
Reason: On handling pline outside of awk
I need a simple script to get all lines between 2 Patterns,
e.g.
.............
.............
114456723: testing Script
Alpha
Beta
114459234: testing Done
.............
.............
It should give all the lines in between 114456723 and 114459234, including these as well.
Any... (2 Replies)
Hi Gurus,
I have a file say for ex. file1 which has 3500 lines in it which are different account numbers and another file (file2) which has 230000 lines in it. I want to read all the lines in file1 and delete all those lines from file2 which has that same pattern as in file1. I am not quite... (4 Replies)
hi,
I have the following file
hello
world
this
is
to
say
bye
to
everyone
so
bye
I want to get the lines from hello to the first bye inclusive into another file?
how can I do this (11 Replies)
I want to delete 1 line above the paatern and 3 line below the pattern and the pattern line itself, on the whole 5 lines. If there are three patterns what to do and the final text file to be captured in a new file. (3 Replies)
I need to print out sections (varying numbers of lines) of a file between patterns. That alone is easy enough: sed -n '/START/,/STOP/' I also need the 3 lines BEFORE the start pattern. That alone is easy enough: grep -B3 START But I can't seem to combine the two so that I get everything between the... (2 Replies)
Hi,
I want to print only lines (green-italic lines) in between first and last strings in column 9.
there are different number of lines between each strings.
10 AUGUSTUS exon 4558 4669 . - . 10.g1
10 AUGUSTUS exon 8771 8889 . ... (6 Replies)
I have a list in the format below, how do I read through the list and extract the lines between the ##START## and ##END##, so i can check for specific values between each ##START## & ##END## pattern
##START##
RANDOMTEXT
DFGSD
SDFSDF
##END##
##START##
morestuff
sdfggfg
sdfsdf... (10 Replies)
im using the following code to search a log for entries on two different lines:
awk 'BEGIN{count=0} /'"${firstpattern}"'/,/'"${secondpattern}"'/ { print; if ($0 ~ /'"${thirdpattern}"'/){count++}; } END { print count }' data.txt
firstpattern="start error log"
secondpattern="i am logging the... (1 Reply)
Hi, I need to print lines which are matching with start pattern "SELECT" and END PATTERN ";" and only select the last "select" statement including the ";" .
I have attached sample input file and the desired input should be as:
INPUT FORMAT:
SELECT
ABCD,
DEFGH,
DFGHJ,
JKLMN,
AXCVB,... (5 Replies)
Discussion started by: nani2019
5 Replies
LEARN ABOUT MINIX
grep
GREP(1) General Commands Manual GREP(1)NAME
grep - search a file for lines containing a given pattern
SYNOPSIS
grep [-elnsv] pattern [file] ...
OPTIONS -e-e pattern is the same as pattern
-c Print a count of lines matched
-i Ignore case
-l Print file names, no lines
-n Print line numbers
-s Status only, no printed output
-v Select lines that do not match
EXAMPLES
grep mouse file # Find lines in file containing mouse
grep [0-9] file # Print lines containing a digit
DESCRIPTION
Grep searches one or more files (by default, stdin) and selects out all the lines that match the pattern. All the regular expressions
accepted by ed and mined are allowed. In addition, + can be used instead of * to mean 1 or more occurrences, ? can be used to mean 0 or 1
occurrences, and | can be used between two regular expressions to mean either one of them. Parentheses can be used for grouping. If a
match is found, exit status 0 is returned. If no match is found, exit status 1 is returned. If an error is detected, exit status 2 is
returned.
SEE ALSO cgrep(1), fgrep(1), sed(1), awk(9).
GREP(1)