Sponsored Content
Top Forums Shell Programming and Scripting Sed to delete exactly match pattern and print them in other file Post 302213400 by Vi-Curious on Thursday 10th of July 2008 02:59:15 AM
Old 07-10-2008
Sorry for the delay in getting back to you. Work 4-on/4-off and some days I just choose to leave the computer off. Smilie


Ok, you want your tcpfile.delete to actually contain the lines that are (to be) deleted. That's the problem. For this to work, using the !d for the delete, you would have to build a single regular expression that matches every line to be deleted. That is no small task.

A couple of suggestions.

1. Since nothing is really being deleted, and tcpfile.delete really just identifies those lines that need to be deleted, you could use the /p to identify them.

Assuming you're not doing it this way because you want to use the /d, then I have two other suggestions.

2. If you use /d in delete.sed, tcpfile.delete ends up containing the contents of tcpfile minus those lines which would be deleted by the delete expressions. You could then use comm, or some other utility, to compare tcpfile and tcpfile.delete to produce a list of the lines which were deleted. I ran a quick test with comm and, on my system, anyway, it was producing one extra line of output that it shouldn't have been.

3. To generate a file tcpfile.delete that contains the (to be) deleted lines, and using the !d form for delete, you could use multiple delete.sed files.

Code:
 
delete1.sed
/=315[89]$/!d
 
delete2.sed
/=1447$/!d
 
for i in delete*.sed;do sed -f $i tcpfile >> tcpfile.delete;done



There are probably other ways, as well. Just need to decide what's easiest for you. Note the $ in the expressions. That matches the end-of-line in the input. In your last example for matching port 451, you still have the potential to match more than you want (451, 4510, 4511, etc).
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

SED: match pattern & delete matched lines

Hi all, I have the following data in a file x.csv: > ,this is some text here > ,,,,,,,,,,,,,,,,2006/11/16,0.23 > ,,,,,,,,,,,,,,,,2006/12/16,0.88 < ,,,,,,,,,,,,,,,,this shouldnt be deleted I need to use SED to match anything with a > in the line and delete that line, can someone help... (7 Replies)
Discussion started by: not4google
7 Replies

2. Shell Programming and Scripting

SED: delete and print the only exact matched pattern

I am really need help with the regular expression in SED. From input file, I need to extract lines that have the port number (sport or dport) as defined. The input file is something like this time=1209515280-1209515340 dst=192.168.133.202 src=208.70.8.23 bytes=2472 proto=6 sport=80 dport=1447... (6 Replies)
Discussion started by: new_buddy
6 Replies

3. Shell Programming and Scripting

sed print all lines after pattern match

HiCan someone show me how to print all lines from a file after a line matching a pattern using sed?Thanks (13 Replies)
Discussion started by: steadyonabix
13 Replies

4. Shell Programming and Scripting

Sed delete blank lines upto first pattern match

Hi Im trying to do the following in sed. I want to delete any blank line at the start of a file until it matches a pattern and then stops. for example: Input output: I have got it to work within a range of two patterns with the following: sed '/1/,/pattern/{/^]*$/d}' The... (2 Replies)
Discussion started by: duonut
2 Replies

5. Shell Programming and Scripting

sed print from last occurrence match until the end of file

Hi, i have file f1.txt with data like: CHECK a b CHECK c d CHECK e f JOB_START .... I want to match the last occurrence of 'CHECK' until the end of the file. I can use awk: awk '/^CHECK/ { buf = "" } { buf = buf "\n" $0 } END { print buf }' f1.txt | tail +2Is there a cleaner way of... (2 Replies)
Discussion started by: ysrini
2 Replies

6. Shell Programming and Scripting

Need one liner to search pattern and print everything expect 6 lines from where pattern match made

i need to search for a pattern from a big file and print everything expect the next 6 lines from where the pattern match was made. (8 Replies)
Discussion started by: chidori
8 Replies

7. UNIX for Dummies Questions & Answers

Match Pattern after certain pattern and Print words next to Pattern

Hi experts , im new to Unix,AWK ,and im just not able to get this right. I need to match for some patterns if it matches I need to print the next few words to it.. I have only three such conditions to match… But I need to print only those words that comes after satisfying the first condition..... (2 Replies)
Discussion started by: 100bees
2 Replies

8. Shell Programming and Scripting

Match Pattern and print pattern and multiple lines into one line

Hello Experts , require help . See below output: File inputs ------------------------------------------ Server Host = mike id rl images allocated last updated density vimages expiration last read <------- STATUS ------->... (4 Replies)
Discussion started by: tigerhills
4 Replies

9. Shell Programming and Scripting

Egrep patterns in a file and limit number of matches to print for each pattern match

Hi I need to egrep patterns in a file and limit number of matches to print for each matched pattern. -m10 option is not working out in my sun solaris 5.10 Please guide me the options to achieve. if i do head -10 , i wont be getting all pattern match results as output since for a... (10 Replies)
Discussion started by: ananan
10 Replies

10. UNIX for Beginners Questions & Answers

sed script to delete the last word after a last pattern match

Hi Guys , I am having a file as stated below File 1 sa0 -- i_core/i_core_apb/i_afe0_controller/U261/A sa0 -- i_core/i_core_apb/i_afe0_controller/U265/Z sa1 -- i_core/i_core_apb/i_afe0_controller/U265/A sa1 -- i_core/i_core_apb/i_afe0_controller/U268/Z sa1 -- ... (7 Replies)
Discussion started by: kshitij
7 Replies
asadmin-delete-domain(1AS)					   User Commands					asadmin-delete-domain(1AS)

NAME
asadmin-delete-domain, delete-domain - deletes the givendomain SYNOPSIS
delete-domain [--terse=false] [--echo=false] [--domaindir install_dir/domains] domain_name delete-domain deletes the specified domain. The domain must already exist and must be stopped. This command is supported in local mode only. OPTIONS
--domaindir directory where the domain is to be deleted. If specified, path must be accessible in the filesystem. If not speci- fied, the domain in the default install_dir/domains directory is deleted. --terse indicates that any output data must be very concise, typically avoiding human-friendly sentences and favoring well- formatted data for consumption by a script. Default is false. --echo setting to true will echo the command line statement on the standard output. Default is false. OPERANDS
domain_name name of the domain. Must be a unique name. Example 1: Using delete-domain asadmin> delete-domain sampleDomain deleted domain sampleDomain successfully Where: the sampleDomain domain is deleted. EXIT STATUS
0 command executed successfully 1 error in executing the command asadmin-create-domain(1AS), asadmin-start-domain(1AS), asadmin-stop-domain(1AS), asadmin-list-domains(1AS) J2EE 1.4 SDK March 2004 asadmin-delete-domain(1AS)
All times are GMT -4. The time now is 11:12 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy