sed command


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers sed command
# 1  
Old 03-19-2009
sed command

Hi: I have an overly large log file because of my own couple of IPs. I have been doing this:

sed '/174.114.270.1/d' accesslog.txt > newaccesslog.txt
sed '/192.168.1.1/d' newaccesslog.txt > accesslog.txt

To strip out those two IP's. Then I did a man sed but I didn't see how to use an or to just or them. Is there a better way to do this? That log is my apache access log so it needs to be written to at all times (meaning I can't rename it not even for a second or I'll lose data....although that last write probably causes some problems). What I'd like as an end result is this -- just strip out those two IP's from the log file (not other log files as a result).

Kind regards.
# 2  
Old 03-20-2009
thats possible only if you have -i option in your sed man page
# 3  
Old 03-20-2009
Code:
sed -e '/174.114.270.1/d' -e '/192.168.1.1/d' accesslog.txt > newaccesslog.txt 
mv newaccesslog.txt accesslog.txt

Code:
awk '!/174.114.270.1/ && !/192.168.1.1/' accesslog.txt > newaccesslog.txt 
mv newaccesslog.txt accesslog.txt

Regards
# 4  
Old 03-20-2009
Ah, I do have a -i (edit files in place). sed v4.1.5

So to remove all entire lines containing one string or another from a log file (without moving, disrupting, etc. the original log file)

sed -i -e '/174.114.270.1/d' -e '/192.168.1.1/d' accesslog.txt

I tried this on a test file and it worked. Wanted to follow up for confirmation in case I created a new problem.

Kind regards.

Last edited by mrealty; 03-20-2009 at 11:09 AM..
# 5  
Old 03-21-2009
What I meant to say at the end of my last post was that I was hoping for someone to confirm that my new sed statement looked like it won't cause any problems. The only thing I noticed that was kind of quirky was that the log file is owned by apache, I'm logged in as root, apache does not have a shell account so I can't su to it. So when I run the above sed utility, my log file is now owned by root and I must chown it afterwards. Other than that --- it works great. Thanks for the help.

Kind regards.
# 6  
Old 03-21-2009
You could do something like this (maybe in a script?):

Code:
sed -i -e '/174.114.270.1/d' -e '/192.168.1.1/d' accesslog.txt && chown apache accesslog.txt

Regards
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Output of sed command to another sed command

Hi All, I'm relatively new to Unix scripting and am trying to get my head around piping. I'm trying to take a header record from one file and prepend it to another file. I've done this by creating several temp files but i'm wondering if there is a cleaner way to do this. I'm thinking... (10 Replies)
Discussion started by: BigCroyd
10 Replies

2. Shell Programming and Scripting

sed and awk giving error ./sample.sh: line 13: sed: command not found

Hi, I am running a script sample.sh in bash environment .In the script i am using sed and awk commands which when executed individually from terminal they are getting executed normally but when i give these sed and awk commands in the script it is giving the below errors :- ./sample.sh: line... (12 Replies)
Discussion started by: satishmallidi
12 Replies

3. Shell Programming and Scripting

sed Command

Hello, I'm working with this command which I'm having trouble understanding it: sed -e '1,$ s/SUB/N/g' < $1 > file.txt Where SUB stand for an special character with code in ASCII is 0x1A, notepad read it as a right arrow. Any help will be appreciated. (5 Replies)
Discussion started by: emilioveras
5 Replies

4. Shell Programming and Scripting

sed returns error "sed: -e expression #1, char 18: unterminated `s' command"

Hello All, I have something like below LDC100/rel/prod/libinactrl.a LAA2000/rel/prod/libinactrl.a I want to remove till first forward slash that is outputshould be as below rel/prod/libinactrl.a rel/prod/libinactrl.a How can I do that ??? (8 Replies)
Discussion started by: anand.shah
8 Replies

5. UNIX for Advanced & Expert Users

sed command

Hi..... I'm using sed command for replace the words in a file cat >test.txt My test.txt contains Mary had a little ham Mary fried a lot of spam Jack ate a Spam sandwich Jill had a lamb spamwich Marry had a spicy wich $ sed 's/wich$/mirchi/g' test.txt output is: Mary had a little ham... (24 Replies)
Discussion started by: ksrivani
24 Replies

6. UNIX for Dummies Questions & Answers

sed insert command and variable expansion/command substitution

I know this script is crummy, but I was just messing around.. how do I get sed's insert command to allow variable expansion to show the filename? #!/bin/bash filename=`echo $0` /usr/bin/sed '/#include/ { i\ the filename is `$filename` }' $1 exit 0 (8 Replies)
Discussion started by: glev2005
8 Replies

7. Shell Programming and Scripting

Convert Sed command to perl command

Hello, Can any perl experts help me convert my sed string to perl. I am unsuccessful with this. I have to remove this string from html files OAS_AD('Top'); I have come up with this. However the requirement is in perl. for find in $(find . -type f -name "file1.html") ; do cat $find |... (2 Replies)
Discussion started by: abacus
2 Replies

8. UNIX for Dummies Questions & Answers

some help with the sed command please

hi all, attached you can find a small txt file ( .txt ), GIVEN that past_scheduler="islip" and scheduler="mucf" can somebody please tell me WHY sed 's/-u '$past_scheduler'/-u '$scheduler'/g' .txt > .txt.temp fails ? thanx (3 Replies)
Discussion started by: OneDreamCloser
3 Replies

9. Shell Programming and Scripting

Loop with sed command to replace line with sed command in it

Okay, title is kind of confusion, but basically, I have a lot of scripts on a server that I need to replace a ps command, however, the new ps command I'm trying to replace the current one with pipes to sed at one point. So now I am attempting to create another script that replaces that line. ... (1 Reply)
Discussion started by: cbo0485
1 Replies

10. Shell Programming and Scripting

awk/sed Command : Parse parameter file / send the lines to the ksh export command

Sorry for the duplicate thread this one is similar to the one in https://www.unix.com/shell-programming-scripting/88132-awk-sed-script-read-values-parameter-files.html#post302255121 Since there were no responses on the parent thread since it got resolved partially i thought to open the new... (4 Replies)
Discussion started by: rajan_san
4 Replies
Login or Register to Ask a Question