Sponsored Content
Full Discussion: Regular Expressions
Top Forums UNIX for Advanced & Expert Users Regular Expressions Post 302195825 by era on Friday 16th of May 2008 03:08:38 AM
Old 05-16-2008
Quote:
Originally Posted by ramky79
# Save, disable, and restore the verbose flag - any
# verbose output would look like errors.
typeset verbose="$(set -o |sed -n 's/^verbose *//p')"
set +v
This one even has a comment to explain what it does. It disables verbose debugging (disables set -v if set), remembering the previous state of the flag in the verbose variable.

Quote:
# Strip the "Connecting to host..." line, prompts, blank lines
# and login banners. What's left should only be error messages.
typeset errs="$(echo "$msgs" |
sed -e '/^Connecting to .*\.\.\.$/d' \
-e 's/sftp > //g' \
-e '/^[ ]*$/d' \
-e '/^#/d' \
-e '/^[-dDlbcps][-rwxsStTlL]\{9\}+\{0,1\} /d')"
Again, the comments are probably better than any detailed attempt at going through the individual regular expressions. Any "Connecting to ..." line is removed. Any sftp> prompt is removed. Any empty line is removed. Any line beginning with a hash sign is removed. The last one looks vaguely like it's intended to remove directory listing output.

Quote:
echo "$msgs" |
while read line
do
case "$line" in -*\ $wild)
echo ${line##* }
;;esac
done
This prints any line from $msgs which matches a dash, followed by anything, followed by a space, followed by the value of the variable $wild, with everything up to the last space trimmed away. (None of this involves any regular expressions, strictly speaking; both the case statement and the ${var##subst} interpolation work with glob patterns.)

$wild is defined up at the beginning of the function as either positional argument $3 or (if that is empty) an asterisk, which matches anything in glob wildcard notation.
 

10 More Discussions You Might Find Interesting

1. Programming

regular expressions in c++

How do I use the regular expressions in c++? (2 Replies)
Discussion started by: szzz
2 Replies

2. Shell Programming and Scripting

regular expressions

Hi, can anyone advise me how to shorten this: if || ; then I tried but it dosent seem to work, whats the correct way. Cheers (4 Replies)
Discussion started by: jack1981
4 Replies

3. Shell Programming and Scripting

Help with regular expressions

I have following content in the file CancelPolicyMultiLingual3=U|PC3|EN RestaurantInfoCode1=U|restID1|1 ..... I am trying to use following matching extression \|(+) to get this PC3|EN restID1|1 Obviously it does not work. Any ideas? (13 Replies)
Discussion started by: arushunter
13 Replies

4. UNIX for Dummies Questions & Answers

regular expressions

Hi Gurus, I need help with regular expressions. I want to create a regular expression which will take only alpha-numeric characters for 7 characters long and will throw out an error if longer than that. i tried various combinations but couldn't get it, please help me how to get it guys. ... (2 Replies)
Discussion started by: ragha81
2 Replies

5. Shell Programming and Scripting

regular expressions

Hello, Let say I have a string with content "Free 100%". How can extract only "100" using ksh? I would this machanism to work if instead of "100" there is any kind of combination of numbers(ex. "32", "1238", "1"). I want to get only the digits. I have written something like this: ... (4 Replies)
Discussion started by: whatever
4 Replies

6. UNIX for Dummies Questions & Answers

Regular expressions

In regular expressions with grep(or egrep), ^ works if we want something in starting of line..but what if we write ^^^ or ^ for pattern matching??..Hope u all r familiar with regular expressions for pattern matching.. (1 Reply)
Discussion started by: aadi_uni
1 Replies

7. Shell Programming and Scripting

Regular Expressions

#!/usr/bin/perl $word = "one last challenge"; if ( $word =~ /^(\w+).*\s(\w+)$/ ) { print "$1"; print "\n"; print "$2"; } The output shows that "$1" is with result one and "$2" is with result challenge. I am confused about how this pattern match expression works step by step. I... (8 Replies)
Discussion started by: DavidHe
8 Replies

8. Shell Programming and Scripting

Help with regular expressions

I have a file that I'm trying to find all the cases of phone number extensions and deleting them. So input file looks like: abc x93825 def 13234 x52673 hello output looks like: abc def 13234 hello Basically delete lines that have 5 numbers following "x". I tried: x\(4) but it... (7 Replies)
Discussion started by: pxalpine
7 Replies

9. Shell Programming and Scripting

Regular Expressions

I am new to shell scripts.Can u please help me on this req. test_user = "Arun" if echo "test_user is a word" else echo "test_user is not a word" (1 Reply)
Discussion started by: chandrababu
1 Replies

10. Shell Programming and Scripting

Regular expressions

I need to pick a part of string lets stay started with specific character and end with specific character to replace using sed command the line is like this:my audio book 71-skhdfon1dufgjhgf8.wav' I want to move the characters beginning with - end before. I have different files with random... (2 Replies)
Discussion started by: XP_2600
2 Replies
RE_COMP(3)						   BSD Library Functions Manual 						RE_COMP(3)

NAME
re_comp, re_exec -- regular expression handler LIBRARY
Compatibility Library (libcompat, -lcompat) SYNOPSIS
#include <unistd.h> char * re_comp(const char *s); int re_exec(const char *s); DESCRIPTION
This interface is made obsolete by regex(3). The re_comp() function compiles a string into an internal form suitable for pattern matching. The re_exec() function checks the argument string against the last string passed to re_comp(). The re_comp() function returns 0 if the string s was compiled successfully; otherwise a string containing an error message is returned. If re_comp() is passed 0 or a null string, it returns without changing the currently compiled regular expression. The re_exec() function returns 1 if the string s matches the last compiled regular expression, 0 if the string s failed to match the last compiled regular expression, and -1 if the compiled regular expression was invalid (indicating an internal error). The strings passed to both re_comp() and re_exec() may have trailing or embedded newline characters; they are terminated by NULs. The regu- lar expressions recognized are described in the manual entry for ed(1), given the above difference. DIAGNOSTICS
The re_exec() function returns -1 for an internal error. The re_comp() function returns ``no previous regular expression'' or one of the strings generated by regerror(3). SEE ALSO
ed(1), egrep(1), ex(1), fgrep(1), grep(1), regex(3) HISTORY
The re_comp() and re_exec() functions appeared in 4.0BSD. BSD
June 4, 1993 BSD
All times are GMT -4. The time now is 08:40 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy