05-10-2011
grep sed and a loop
I have a requirement to search a log file that never rotates for certain values. If I find them I pipe them to a another file. To log file is constanyl being appened with new lines and never rotating Easy so far.
The problem is I dont want to pipe out matches already seen before. One thing I tried was to use sed to put a # at the beginning of each line as it is read. Then the grep would ignore lines starting with #
My problem is I can get it to just add # to the unread lines, it adds another to all lines so each time the log is read so the earliest entries have loads of * infront of them.
I was tryin gto get it to ignore liens with # and then to a for loop for any the new lines e.g. for any not starting with # search for the string and add # to the front. This way is would only add # to lines that dont have one.
Here i swhat I was working with but just cant get that loop to work on lines not starting with #
Any help would be a awesome.
grep -v '^#' test.log | grep "Can not load CRL"
This line ignores lines starting with # and greps the rest for "Can not load CRL"
sed 's/^/#/g' test.log > testnew.log
The line adds the # to the front and creates output file testnew.log I want it to only add # to lines without a # already
mv testnew.log test.log
This line renames\overwrites testnew.log and to test.log If anyone knows how i can write directly to the original file instead of having to write a new file and then overwrite the original would be great as well
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi ,
I am trying a script which takes user input userid . I am stuck how to check whether that is a valid user id or not in the audit log files. My code is :
cd $CCP_AUDIT
cat * > /export/home/$USR/l***/files
echo "UserId:\c"
read UserId
#Date Function
echo "DATE : \c"
read xxx
I... (7 Replies)
Discussion started by: gundu
7 Replies
2. UNIX for Dummies Questions & Answers
alist contain:
a
b
c
d
e
blist contain:
a
b
c
the code:
#!/usr/bin/ksh
cat blist | while read line
do
grep -V "$line" alist > data
done (8 Replies)
Discussion started by: bobo
8 Replies
3. Shell Programming and Scripting
I have a huge file and want to separate it into several subsets.
The file looks like:
C1 C2 C3 C4 ... (variable names)
1 ....
2 ....
3 ....
:
22 ....
23 ....
I want to separate the huge file using the column 1, which has numbers from 1 to 23 (but there are different amount of... (8 Replies)
Discussion started by: AMBER
8 Replies
4. Shell Programming and Scripting
I have a key file
$ cat klist
5 N:8855 CASA VERDE ROAD :32827 :ORLAND
5 N:585 MOLLY LANE :30189 :WOODST
5 N:320 NINA ROAD :32304 :TALLAH
and a data file, see example of the line below:
N:RT 15 & N 7TH STREET :17837 :U SAVE
I need to search by key (2nd field) from klist... (6 Replies)
Discussion started by: migurus
6 Replies
5. Shell Programming and Scripting
Hi all,
I have the below script to get input but i cannot get grep to work.
input1.txt
AAAAAAAAG
input2.txt
>gi|184009.1| LEAFY-like |AAAAAAAAGSGGGDHLPY
However, when i use grep -f input1.txt input2.txt
i cannot get any output matches (note that the match is underlined).
Is it... (8 Replies)
Discussion started by: turkishvan
8 Replies
6. Shell Programming and Scripting
So this is what I'm trying to do:
I have a file called registry.txt which has a list of registry entries I want to search for.
I have another file called inctrl.txt on which I want to perform the search on.
Here's the example contents of registry.txt
SOFTWARE\Microsoft\Security... (3 Replies)
Discussion started by: r4v3n
3 Replies
7. Red Hat
Hello everybody,
I have been searching it, but it seems I am unable to find the correct information, that s why I am asking you guys, hoping somebody get an idea.
Here is my problem :
I want a script to loop until a string is identified in a log file.
Here is the script :
#!/bin/sh... (5 Replies)
Discussion started by: guyiom
5 Replies
8. Homework & Coursework Questions
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
I need to search through the users home directories for keywords, display them. The code listed below will show... (7 Replies)
Discussion started by: jcllns1
7 Replies
9. UNIX for Beginners Questions & Answers
Hello -
I am running a script that is outputting to a log. Let call it output.log
I would like to monitor that log until the line "Build Successful" is found.
I think I would need to use the grep command.
How would I do that in a loop?
Thanks
Marty (1 Reply)
Discussion started by: MSpeare
1 Replies
10. Shell Programming and Scripting
Hello,
I have built the following script to check if processes supplied by the argument are running or not.
#!/bin/bash
PROCLIST=$1
PROCESS="0"
ERROR_PROCS=""
IFS='+'
read -ra ADDR <<< "$PROCLIST"
for PROC in "${ADDR}"; do
if ; then
PROCESS=1
... (9 Replies)
Discussion started by: nms
9 Replies
LEARN ABOUT DEBIAN
root-tail
ROOTTAIL(1) General Commands Manual ROOTTAIL(1)
NAME
root-tail - print text directly to X11 root window
SYNOPSIS
root-tail [-g|--geometry GEOMETRY] [-fn|--font FONTSPEC] [--color color] [--reload SEC COMMAND] [--shade] [--outline] [--minspace]
[--noflicker] [-f|--fork] [--reverse] [--whole] [--partial] [--update] [--cont STRING] [--wordwrap] [--justify] [--noinitial] [--frame]
[-id ID] [-i|--interval SECONDS] [-V] file1[,color[,desc]] [file2[,color[,desc]]]
DESCRIPTION
Displays a given file anywhere on your X11 root window, i.e. it is kind of tail -f for multiple files using your desktop background as out-
put window.
All non-option arguments on the command line are files to be logged. A null desc (example: "/var/log/messages,red,") will prevent the
printing of a description and the []'s.
General Options
--color COLOR
Use COLOR as default.
--font | -fn FONTSPEC
Use font FONTSPEC. This can be either a fixed width font like -fn fixed or any font using -fn '-*-*-*-*-*-*-*-*-*-*-*-*-*-*' with
the appropriate fields filled out (see xfontsel). Specifying a different FONTSPEC before each filename will cause each file to be
displayed in a different font.
-f | --fork
Forks to the background.
--reverse
Display the files in reverse order, with the newest lines at the top.
--whole
Only display whole lines. If the last line of a file doesn't yet end with a newline character then wait until it does before dis-
playing it. This is the default if more than one file is being displayed.
--partial
This is the opposite of the --whole option (see above). It displays lines even if they don't yet have a newline at the end. This is
the default if only one file is being displayed.
--update
Update partial lines 'in place' if they are still on the screen when they are updated in their files. Using --update automatically
turns on --partial.
--cont STRING
When partial lines are broken into two lines in the display, prefix the 2nd line with STRING. Defaults to "|| ". Specify the
"--whole" argument to ensure partial lines are never displayed, or specify "--update" to attempt to "repair" broken lines in-place.
--cont-color COLOR
Use COLOR when displaying the continuation string (as optionally specified with the --cont option above).
--wordwrap
The default behaviour is to fit as much as possible onto each line of output, even if this means splitting a word between one line
and the next. The --wordwrap argument splits lines at spaces if possible.
--justify
After wrapping long lines, attempt to justify the text to produce a smooth right-hand margin. Implies --wordwrap.
--reload SEC COMMAND
Re-display the file(s) and run COMMAND every SEC seconds. The default is to never re-display the file(s).
--shade
Add black shading to the font.
--outline
Add a black outline to the font (making redraws quite a bit slower).
--minspace
Use minimum linespace even when using shading or outlining. This might result in leftover pixels (dependign on font and logfile con-
tent).
--noflicker
Use slower but flicker-free update.
--noinitial
Don't display the end of the file(s) initially.
-id ID Use the given window ID for output instead of the root window.
-i | --interval SECONDS
Use the specified sleeping interval between checks instead of the default 2.4 seconds. Fractional values are OK.
-V Print version information.
--frame
Draw a frame around the selected area. This is useful when trying to find the perfect geometry.
EXAMPLE
root-tail -g 800x250+100+50 -font 10x20 /var/log/messages,green -font 12x24 /var/log/secure,red,'ALERT'
BUGS
Some desktop environments open a virtual root window and make it difficult to share it. If you cannot see anything after starting root-
tail, try to find a setting "allow programs on desktop" or similar, or manually specify a window id.
Should you happen to find any bugs please fix them and send me a diff.
NOTE: This program was modified by Marc Lehmann <pcg@goof.com>, who couldn't reach the original author. Please direct bug-reports etc. to
pcg@goof.com.
http://root-tail.plan9.de/
4.2 Berkeley Distribution 2004-03-27 ROOTTAIL(1)