Sponsored Content
Top Forums UNIX for Dummies Questions & Answers sed - combination of line deletion and pattern matching Post 302682089 by Don Cragun on Sunday 5th of August 2012 01:41:13 PM
Old 08-05-2012
Tools

Quote:
Originally Posted by bakunin
You are welcome. In fact, as you can see below, i have learned from this as much, which is why i greatly enjoy it to come here.

First off, i think we have a confusion about the terms "function" and "command". For me, a "command" is a single command, like the "s" (substitute) or the "y", along with everything which is needed to execute it. "s/x/y/p" would be an example for such a command. "function" is what below is called "block of commands". This just to better explain my previous posts.

But probably we should agree to use "commands" and "block of commands" like in the sed man page.



My (GNU-sed) man page says the following:



This means, IMHO, that

Code:
/regexp/[,/regexp2/] { ...... }

is a correct command, because the command is "{ .... }" (="block of commands"). As there is no exception given which forbids "{ ... }" to appear inside another block of commands it follows that this can be nested.

I suppose there will be some practical limit of such nesting but as far as the standard goes there is none AFAICS. I haven't checked the AIX man page yet, but will do so as soon as i get back to the office.

Btw.: this is a very interesting discussion and i am glad i still can learn something new every time i come here.

bakunin
I take it back. Looking at the sed(1) man pages provided in this site's Man Pages section, the OpenSolaris 2009.06 and Linux collection's sed(1) man pages describe
Code:
{ .... }

in a list of command that takes two addresses as described above by bakunin. However, the FreeBSD 8.0, OSX 10.6.2, and POSIX man pages describe it as I described in message #7 in this thread.

In both sets of descriptions:
Code:
s/x/y/

is a command. In POSIX it is also a function. In POSIX, you have functions inside {...}; not commands and the grammar for a function doesn't include any addresses.

I'm going to submit a request to The Austin Group to update the description of awk in a future version of the POSIX standard and the Single UNIX Specification.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

vi part-pattern matching and deletion

Hi, I have a log file which shows the files which has been changed over the last week. They follow this pattern: old_file_version_number@@new_file_version_number Now I need to know how to delete from each line parts starting from @@. I would be issuing the command inside vi(m). So... (5 Replies)
Discussion started by: vino
5 Replies

2. Shell Programming and Scripting

comment/delete a particular pattern starting from second line of the matching pattern

Hi, I have file 1.txt with following entries as shown: 0152364|134444|10.20.30.40|015236433 0233654|122555|10.20.30.50|023365433 ** ** ** In file 2.txt I have the following entries as shown: 0152364|134444|10.20.30.40|015236433 0233654|122555|10.20.30.50|023365433... (4 Replies)
Discussion started by: imas
4 Replies

3. Shell Programming and Scripting

sed find matching pattern delete next line

trying to use sed in finding a matching pattern in a file then deleting the next line only .. pattern --> <ad-content> I tried this but it results are not what I wish sed '/<ad-content>/{N;d;}' akv.xml > akv5.xml ex, <Celebrant2First>Mickey</Celebrant2First> <ad-content> Minnie... (2 Replies)
Discussion started by: aveitas
2 Replies

4. Shell Programming and Scripting

sed - matching pattern one but not pattern two

All, I have the following file: -------------------------------------- # # /etc/pam.d/common-password - password-related modules common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of modules that define the services... (2 Replies)
Discussion started by: RobertBerrie
2 Replies

5. Shell Programming and Scripting

SED Question: Search and Replace start of line to matching pattern

Hi guys, got a problem here with sed on the command line. If i have a string as below: online xx:wer:xcv: sdf:/asdf/http:https-asdfd How can i match the pattern "http:" and replace the start of the string to the pattern with null? I tried the following but it doesn't work: ... (3 Replies)
Discussion started by: DrivesMeCrazy
3 Replies

6. Shell Programming and Scripting

How to use sed to modify a line above or below matching pattern?

I couldn't figure out how to use sed or any other shell to do the following. Can anyone help? Thanks. If seeing a string (e.g., TODAY) in the line, replace a string in the line above (e.g, replace "Raining" with "Sunny") and replace a string in the line below (e.g., replace "Reading" with... (7 Replies)
Discussion started by: sprinner
7 Replies

7. Shell Programming and Scripting

Pattern Matching and text deletion using VI

Can someone please assist me, I'm trying to get vi to remove all the occurences of the text in a file i.e. "DEVICE=/dev/mt??". The "??" represents a number variable. Is there a globel search and delete command that I can use? Thank You in Advance. (3 Replies)
Discussion started by: roadrunner
3 Replies

8. UNIX for Dummies Questions & Answers

Sed: Adding new line after matching pattern

Hi I just wanted to add a new line after every matching pattern: The method doing this doesn't matter, however, I have been using sed and this is what I tried doing, knowing that I am a bit off: sed 'Wf a\'/n'/g' Basically, I want to add a new line after occurrence of Wf. After the line Wf... (5 Replies)
Discussion started by: MIA651
5 Replies

9. Shell Programming and Scripting

Replacing lines matching a multi-line pattern (sed/perl/awk)

Dear Unix Forums, I am hoping you can help me with a pattern matching problem. What am I trying to do? I want to replace multiple lines of a text file (that match a multi-line pattern) with a single line of text. These patterns can span several lines and do not always have the same number of... (10 Replies)
Discussion started by: thefang
10 Replies

10. Shell Programming and Scripting

Sed: printing lines AFTER pattern matching EXCLUDING the line containing the pattern

'Hi I'm using the following code to extract the lines(and redirect them to a txt file) after the pattern match. But the output is inclusive of the line with pattern match. Which option is to be used to exclude the line containing the pattern? sed -n '/Conn.*User/,$p' > consumers.txt (11 Replies)
Discussion started by: essem
11 Replies
emacs(1)						      General Commands Manual							  emacs(1)

NAME
emacs, xemacs - emacs editor DESCRIPTION
The emacs software is unsupported software that is provided as part of Tru64 UNIX. Compaq will fix problems in this unsupported software only if they are specific to Tru64 UNIX. Compaq will not fix problems that are integral to the software itself or that occur when the com- ponent is used on UNIX systems other than Tru64 UNIX. Compaq will not add functionality to this software. Except for this reference page, other reference pages that Tru64 UNIX supplies for emacs are passed through without changes. The reference pages distributed as part of this software are available in the directories /usr/share/doclib/annex/man/man[1-9]. You should use this directory stem in the man command or add it to the MANPATH environment variable to make these files available to the man command. Note Compaq is not responsible for the content or quality of reference pages and other documents installed under the /usr/share/doclib/annex directory and does not revise this material in response to customer problem reports. Reference pages installed under the /usr/share/doclib/annex/man directory are not available from Compaq in book form; for example, they are not included in the reference manu- als that you receive when you order the Tru64 UNIX documentation set as hard copy books. Problems related to the content or quality of any documentation installed in the /usr/share/doclib/annex directory tree should be sent to the developers of the documentation. The format for changing the search path with the man command is: man -P /usr/share/doclib/annex/man [section] title... If you are using the Bourne, Korn, or POSIX shells, use the following command sequence to modify your environment: MANPATH=$MAN- PATH:/usr/share/doclib/annex/man export MANPATH If you are using the C shell, enter the command: setenv MANPATH `echo $MANPATH`:/usr/share/doclib/annex/man See the reference pages for the man(1) command for additional information on the search path used to locate files. The reference pages associated with this product are not included in the whatis data base created by the catman command. Therefore, the man -k and apropos commands will not locate reference pages included with this product. SEE ALSO
Commands: apropos(1), catman(8), man(1) emacs(1)
All times are GMT -4. The time now is 07:03 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy