Delete values between 2 patterns


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Delete values between 2 patterns
# 15  
Old 05-23-2014
Quote:
Originally Posted by alister
Hi, Don. Can you elaborate?

Regards,
Alister

---------- Post updated at 05:56 PM ---------- Previous update was at 05:52 PM ----------


Makes sense. Last I heard, default sed on Ubuntu is GNU sed and default AWK is mawk.

Regards,
Alister
I should have said BREs rather than back references, but the times I most often see a sed substitute command fail is when I'm using back references. On the Linux sed man page provided in these forums, you'll find:
Quote:
REGULAR EXPRESSIONS
POSIX.2 BREs should be supported, but they aren't completely because of performance prob-
lems. The \n sequence in a regular expression matches the newline character, and simi-
larly for \a, \t, and other sequences.
I don't currently have access to a Linux system and I can't give a clear statement of what POSIX.2 BRE features are not supported by the Linux sed utility, but I have seen several cases in these forums where a standards conforming sed script (such as the one protocomm posted in this thread:
Code:
sed -n 's|\([0-9]*\.[0-9]*\.[A-Z0-9]*\)\(\.[0-9]*\.[0-9]*\)\(.*\)|\1\3|p'

or a similar suggestion I would have made until I saw protocomm's suggestion and the statement that it didn't work:
Code:
sed 's/^\([[:alnum:]]*[.][[:alnum:]]*[.][[:alnum:]]*\)[.[:alnum:]]*/\1/' input.txt

) fail on the GNU utilities version of sed but work as specified by the standards with an AIX, HP/UX, OS X, or Solaris system sed utility.
This User Gave Thanks to Don Cragun For This Post:
# 16  
Old 05-24-2014
Quote:
Originally Posted by Don Cragun
I should have said BREs rather than back references, but the times I most often see a sed substitute command fail is when I'm using back references. On the Linux sed man page provided in these forums, you'll find:

I don't currently have access to a Linux system and I can't give a clear statement of what POSIX.2 BRE features are not supported by the Linux sed utility, but I have seen several cases in these forums where a standards conforming sed script (such as the one protocomm posted in this thread:
Code:
sed -n 's|\([0-9]*\.[0-9]*\.[A-Z0-9]*\)\(\.[0-9]*\.[0-9]*\)\(.*\)|\1\3|p'

or a similar suggestion I would have made until I saw protocomm's suggestion and the statement that it didn't work:
Code:
sed 's/^\([[:alnum:]]*[.][[:alnum:]]*[.][[:alnum:]]*\)[.[:alnum:]]*/\1/' input.txt

) fail on the GNU utilities version of sed but work as specified by the standards with an AIX, HP/UX, OS X, or Solaris system sed utility.
Don Cragun, your line code works fine on my macbook.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Delete patterns matching

Delete patterns matching OS version: RHEL 7.3 Shell : Bash I have a file like below (pattern.txt). I need to delete all lines starting with the following words (words separated by comma below) and ) character. LOGGING, NOCOMPRESS, TABLESPACE , PCTFREE, INITRANS, MAXTRANS, STORAGE,... (3 Replies)
Discussion started by: John K
3 Replies

2. Shell Programming and Scripting

Add values of similar patterns with awk

so my output is this: session_closed=157 session_opened=151 session_closed=18 session_opened=17 there are two patterns here, but with different values. the two patterns are "session_opened" and "session_closed". i expect there will be many more other patterns. what i want to do is... (8 Replies)
Discussion started by: SkySmart
8 Replies

3. Shell Programming and Scripting

Find files not matching multiple patterns and then delete anything older than 10 days

Hi, I have multiple files in my log folder. e.g: a_m1.log b_1.log c_1.log d_1.log b_2.log c_2.log d_2.log e_m1.log a_m2.log e_m2.log I need to keep latest 10 instances of each file. I can write multiple find commands but looking if it is possible in one line. m file are monthly... (4 Replies)
Discussion started by: wahi80
4 Replies

4. Shell Programming and Scripting

Delete lines and the first pattern between 2 matched patterns

Hi, i need help to delete all the lines between 2 matched patterns and the first pattern must be deleted too. sample as follows: inputfile.txt >kump_1 ........................... ........................... >start_0124 dgfhghgfh fgfdgfh fdgfdh >kump_2 ............................. (7 Replies)
Discussion started by: redse171
7 Replies

5. Shell Programming and Scripting

Match paragraph between two patterns, delete the duplicate paragraphs

Hello all I have a file my DNS server where there are duplicate paragrapsh like below. How can I remove the duplicate paragraph so that only one paragraph remains. BEGIN; replace into domains (name,type) values ('225.168.192.in-addr.arpa','MASTER'); replace into records (domain_id,... (2 Replies)
Discussion started by: sb245
2 Replies

6. Shell Programming and Scripting

Delete line breaks and extra spaces between patterns

Hi, if in between strings "<section" and "</section>" across multiple lines there occurs the string "ole-present", delete all line breaks and replace any tabs or multiple spaces with a single space. Looking for an AWK or SED solution. Thank you. <section ... status = "ole-present" ...... (2 Replies)
Discussion started by: pioavi
2 Replies

7. Shell Programming and Scripting

Capture values using multiple regex patterns

I have to read the file, in each line of file i need to get 2 values using more than one search pattern. ex: <0112 02:12:20 def > /some string/some string||some string||124 i donot have same delimiter in the line, I have to read '0112 02:12:20' which is timestamp, and last field '124' which is... (4 Replies)
Discussion started by: adars1
4 Replies

8. Shell Programming and Scripting

delete lines between patterns

Hi, I've searched in this forum all day long but was not able to find enough codes to help me do a task. The only code that I can come up with is this: sed '/ /,/ /{//p;d;}' inputfile > outputfile I would like to sed/awk/grep a file for two patterns and then delete the lines between... (4 Replies)
Discussion started by: shamushamu
4 Replies

9. Shell Programming and Scripting

delete two patterns and remove one pattern

Friends, I have .txt file with following format. START ABC|Prashant1|Patel1 ABC|Prashant2|Patel2 ABC|Prashant1|Patel1 ABC|Prashant2|Patel2 END I would like to do: 1) Delete line with START 2) Delete line with END 3) Remove ABC| 4) Delete duplicate records The following command... (7 Replies)
Discussion started by: ppat7046
7 Replies

10. Shell Programming and Scripting

Delete lines between two patterns without deleting the second pattern

I want to delete lines like this sed '/FROM_HERE/,/TO_HERE/d' but I would like to *not* delete the second match, i.e. the TO_HERE line. How can I achieve this? Thank you! (1 Reply)
Discussion started by: Ilja
1 Replies
Login or Register to Ask a Question