07-23-2011
grep on string and printing line after until another string has been found
Hello Everyone,
I just started scripting this week. I have no background in programming or scripting.
I'm working on a script to grep for a variable in a log file
Heres what the log file looks like. The x's are all random clutter
xxxxxxxxxxxxxxxxxxxxx START: xxxxxxxxxxxx ACTNUMBER=1234xxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxx FINISH:
I declared ACTNUMBER as a variable $ACTNUMBER
Basically the user will open a file and grep for the ACTNUMBER.
I've gotten as far as getting the file open with exec.
What I want the script to do is to grep for the ACTNUMBER and only print the line (with echo) if the line contains a START and the ACTNUMBER. I also want the script to echo all the data in the lines after until it reaches the word FINISH
I'm looking for the results in a numbered format output to display, with a carriage return between the results.
There's a twist though. Sometimes theres a nested START and FINISH within a START and FINISH and I need to have the script look for that as well. So it it finds two STARTS then find two ENDS. So if it finds one START, look for another START, if it finds another START look for two FINISH's.
I know grep only does one line at a time,
so if i do a grep -n START | grep -n ACTNUMBER=$ACTNUMBER
it will output lines with both the START and ACTNUMBER, and I need to get it to print all the lines after until it finds the line that read FINISH.
So what I need it to do is look for a START and ACTNUMBER. If it finds it then echo that particular line. Then search next line, even if it doesnt find it, to print that line, and the next, and if it reaches a FINISH, print the line, then start loop over.
I have a feeling some counters might be involved here but I'm really not sure how to implement this.
Thanks so much for any input and ideas on this.
9 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hello all
Im performing find + grep operation that looks like this :
find . -name "*.dsp" | xargs grep -on Project.lib | grep -v ':0'
and I like to add to this one liner the possibility to replace the string " Project.lib" that found ( more then once in file ) with "Example.lib"
how can I do... (0 Replies)
Discussion started by: umen
0 Replies
2. Shell Programming and Scripting
I've seen several examples of grep showing the filename the string was found in, but what I really need is grep to show the file details in long format (like ls -l would).
scenario is:
grep mobile_number todays_files
This will show me the string I'm after & which files they turn up in, but... (2 Replies)
Discussion started by: woodstock
2 Replies
3. Shell Programming and Scripting
I know how to grep, copy and paste a string from a line. Now, what i want to do is to find a string and print a string from the line below it. To demonstrate:
Name 1: ABC Age: 3
Sex: Male
Name 2: DEF Age: 4
Sex: Male
Output:
3 Male
I know how to get "3". My biggest problem is to... (4 Replies)
Discussion started by: kingpeejay
4 Replies
4. Shell Programming and Scripting
Hi,
I have two variables x and y.
i need to find a particular string in a file, a workflow name and then insert the values of x and y into the next lines of the workflow name.
basically it is like as below
wf_xxxxxx
$$a=
$$b=
$$c= figo
$$d=bentley
i need to grep the 'wf_xxxx' and then... (6 Replies)
Discussion started by: angel12345
6 Replies
5. Shell Programming and Scripting
Hi,
1_strings file contains
$ cat 1_strings
/home/$USER/Src
/home/Valid
/home/Review$ cat myxml
<projected value="some string" path="/home/$USER/Src">
<input 1/>
<estimate value/>
<somestring/>
</projected>
<few more lines >
<projected value="some string" path="/home/$USER/check">... (4 Replies)
Discussion started by: greet_sed
4 Replies
6. UNIX for Dummies Questions & Answers
Right now, my code is:
s/Secondary Ins./Secondary Ins.\
1/g
It's adding a 1 as soon as it finds Secondary Ins.
Primary Ins.: MEDICARE B DMERC Secondary Ins.
1: CONTINENTAL LIFE INS
What I really want to achieve is having a 1 added on the next line that contain "Secondary Ins." It... (4 Replies)
Discussion started by: newbeee
4 Replies
7. Shell Programming and Scripting
Hi,
I need to find all rows in 1st col of one file in another file (first occurrence) and replace the 1st col of first file with the grep result (the entire line). For example search AA from file 1 in file 2 and replace in file 1 by entire line found.
File1
AA BB CC DD
BB AA CC DDFile2
... (2 Replies)
Discussion started by: ritakadm
2 Replies
8. Shell Programming and Scripting
so im searching the process table with:
ps -ef | awk -F"./rello.java" '{ print substr($0, index($0,$2)) }'
I only want it to print everything that's infront of the "./rello.java". That's because im basically getting the arguments that was passed to the rello.java script.
this works.
... (2 Replies)
Discussion started by: SkySmart
2 Replies
9. Shell Programming and Scripting
My file (the output of an experiment) starts off looking like this,
_____________________________________________________________
Subjects incorporated to date: 001
Data file started on machine PKSHS260-05CP
**********************************************************************
Subject 1,... (9 Replies)
Discussion started by: samonl
9 Replies
LEARN ABOUT MOJAVE
jrunscript
jrunscript(1) General Commands Manual jrunscript(1)
NAME
jrunscript - command line script shell
SYNOPSIS
jrunscript [ options ] [ arguments... ]
PARAMETERS
options
Options, if used, should follow immediately after the command name.
arguments
Arguments, if used, should follow immediately after options or command name.
DESCRIPTION
jrunscript is a command line script shell. jrunscript supports both an interactive (read-eval-print) mode and a batch (-f option) mode of
script execution. This is a scripting language independent shell. By default, JavaScript is the language used, but the -l option can be
used to specify a different language. Through Java to scripting language communication, jrunscript supports "exploratory programming"
style.
NOTE: This tool is experimental and may not be available in future versions of the JDK.
OPTIONS
-classpath path
Specify where to find the user's .class files that are accessed by the script.
-cp path
This is a synonym for -classpath path
-Dname=value
Set a Java system property.
-Jflag
Pass flag directly to the Java virtual machine on which jrunscript is run.
-l language
Use the specified scripting language. By default, JavaScript is used. Note that to use other scripting languages, you also need to spec-
ify the corresponding script engine's jar file using -cp or -classpath option.
-e script
Evaluate the given script. This option can be used to run "one liner" scripts specified completely on the command line.
-encoding encoding
Specify the character encoding used while reading script files.
-f script-file
Evaluate the given script file (batch mode).
-f -
Read and evaluate a script from standard input (interactive mode).
-help
Output help message and exit.
-?
Output help message and exit.
-q
List all script engines available and exit.
ARGUMENTS
If [arguments...] are present and if no -e or -f option is used, then the first argument is the script file and the rest of the arguments,
if any, are passed as script arguments. If [arguments..] and -e or -f option are used, then all [arguments..] are passed as script argu-
ments. If [arguments..], -e and -f are missing, interactive mode is used. Script arguments are available to a script in an engine variable
named "arguments" of type String array.
EXAMPLES
Executing inline scripts
jrunscript -e "print('hello world')"
jrunscript -e "cat('http://java.sun.com')"
Use specified language and evaluate given script file
jrunscript -l js -f test.js
Interactive mode
jrunscript
js>print('hello world');
hello world
js>34 + 55
89
js> thread(function() { print('hello world'); }
hello world
js>
Run script file with script arguments
jrunscript test.js arg1 arg2 arg3
test.js is script file to execute and arg1, arg2 and arg3 are passed to script as script arguments. Script can access these using "argu-
ments" array.
SEE ALSO
If JavaScript is used, then before evaluating any user defined script, jrunscript initializes certain built-in functions and objects. These
JavaScript built-ins are documented in jsdocs.
06 Aug 2006 jrunscript(1)