sed man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

sf_sed(3)		 BSD Library Functions Manual		     sf_sed(3)

NAME
     sed_compile, sed_exec, sed_free — string editor

SYNOPSIS
     #include <strfunc.h>

     sed_t *
     sed_compile(char *expr);

     char *
     sed_exec(sed_t *se, char *string);

     svect *
     sed_results(sed_t *se);

     void
     sed_free(sed_t *se);

DESCRIPTION
     These routines implement a subset of sed(1) or Perl's s///, y/// and //
     functionality.

     You must compule your expression with sed_compile() in order to evaluate
     it later.	Once compiled, it can be evaluated multiple times. See the
     EXPRESSIONS block to know about expressions semantics.

     sed_free() used to destroy the compiled structure and free the allocated
     memory.

     sed_exec() takes the source string and transforms it according to the
     compiled rules.  Resulting string stored in the internal buffer within
     the specified sed_t structure.

     sed_results() May be invoked multiple times after sed_exec() to obtain
     last match results. An 'r' flag should be specified within the expression
     string.

EXPRESSIONS
     Currently, this library supports two types of string transformations and
     one type of string match.

     Substitutions

     Expressions of this type are defined in the following BNF:

	   <delim> :=	   '/' | <other_character>

	   <regex> :=	   <regular_expression, re_format(7)>

	   <to>	   :=	   <string>

	   <flags> :=	   *( 'g' | 'i' | 'e' | 'r' | 'm' | 'n' )

	   <expr>  :=	   s <delim> <regex> <delim> <to> <delim> <flags>

     Refer to sed(1) manual page to know other details.

     Table lookup

	   <delim> :=	   '/' | <other_character>

	   <flags> :=	   *( 'i' )

	   <expr>  :=	   y <delim> <string> <delim> <string> <delim> <flags>

     String match

	   <delim> :=	   '/' | <other_character>

	   <flags> :=	   *( 'i' | 'r' | 'm' | 'n' )

	   <reply> :=	   <string>

	   <expr>  :=	   <delim> <string> <delim> [ <reply> <delim>] <flags>

     In the last case, if string does not match, sed_exec() will return a NULL
     pointer, <reply> otherwise. s/// and y/// functions will never return a
     NULL pointer.

	   Flags are common to those transformations.

	   'i'	   case-insensitive matches.

	   'e'	   compile in extended mode (REG_EXTENDED).

	   'g'	   Make the substitution for all non-overlapping matches of
		   the regular expression, not just the first one.

	   'r'	   Remember last match results to allow use of sed_results().

	   'm'	   Compile for newline-sensitive matching (REG_NEWLINE).

	   'n'	   Don't include zero regexec(3) match (a whole substring)
		   into results list.

EXAMPLE
     void main() {
	     sed_t *se1;
	     sed_t *se2;
	     sed_t *se3;
	     char *r1, *r2, r3;

	     /* Compile expressions */
	     se1 = sed_compile("s/(tree) (apple)/\\2 \\1/igr");
	     se2 = sed_compile("y/abc/AbC/i");
	     se3 = sed_compile("/apple/i");

	     r1 = sed_exec(se1, "Tree Apple");
	     r2 = sed_exec(se2, "abcabc");
	     r3 = sed_exec(se3, "another apple tree");

	     /*
	     ** This will produce:
	     ** "Apple Tree\nAbCAbC\n1\n"
	     */
	     printf("%s\n%s\n%d\n", r1, r2, r3?1:0);

	     /*
	     ** This will produce:
	     ** "[Tree Apple], [Tree], [Apple]\n"
	     */
	     printf("[%s]\n", sjoin(sed_results(se1), "], ["));

	     /* Free the resources */
	     sed_free(se1);
	     sed_free(se2);
	     sed_free(se3);
     };

SEE ALSO
     strfunc(3).

AUTHORS
     Lev Walkin <vlm@lionet.info>

BSD			       December 4, 2000				   BSD
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net