12-24-2008
Quote:
Originally Posted by
sinpeak
Thanks to all for the replies.
To matrixmadhan :
Going by your reply -
"It should match zero or more characters in the character class [a-z]
it will match 'a', 'b', 'c' and not the next space character <' '> so just that part is replaced by 'X'"
I tried :-
echo "a 123 abc" | sed 's/[a-z]*/X/'
echo "ab 123 abc" | sed 's/[a-z]*/X/'
echo "abc 123 abc" | sed 's/[a-z]*/X/'
all gave the same output as : X 123 abc
From your reply and the above result I understand - "*" will always start checking from the left in the input string. If it does not find a match , 'X' is replaced at the very beginning of the input string and the job is done.
But if it does find a match , it ends trying to find another match AND 'X' is kept in place of the matched token/characters.
Would request you to please confirm/correct the above.
Thanks
It will check from the start of the string ( <left of the string> ) and I hope this is what you meant, right?
Rest, you are right.
You need to remember this * means match zero or more characters.
There is going to be a definite replacement of zero or more matching characters.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I need to find out if a variable contains a certain text string, then do something about it.
Here is what I mean, but I don't know how to get a "contains" operator
# We have volumes called:
# /Volumes/BackupsA_K
# /Volumes/BackupsL_Z
# /Volumes/Backups_Admin
# (could be more, etc)... (5 Replies)
Discussion started by: TheCrunge
5 Replies
2. Shell Programming and Scripting
I am trying to check two variables and if both are blank I want to set a flag:
the_f3_pid=`rsh $target ps -ef | grep "f3.eab" | awk '{print $2}'`
the_f7_pid=`rsh $target ps -ef | grep "f7.eab" | awk '{print $2}'`
if ; then
y=1
fi
I get an error:
./script_name: test: 0403-021 ]... (4 Replies)
Discussion started by: rcarnesiii
4 Replies
3. HP-UX
hi,
i was trying to club to test condition with if.
if -o ; then
it is giving me error message, i wanted to ask how can we check two condtions with one if. (1 Reply)
Discussion started by: babom
1 Replies
4. Programming
Hi,
Please clear the 2 questions,
2 Questions,
1) Why the new as a operator? Is there any special reason why it can't be a function like malloc?
2) How are we considering sizeof(),new are as a opearartors? I know + - * / -> , . etc.. are operators, which criteria satisfied by sizeof()... (4 Replies)
Discussion started by: Nagapandi
4 Replies
5. Shell Programming and Scripting
Why the op of the following code is like this ????
i=4 j=-1 k=0
echo $?
echo $?
echo $? (5 Replies)
Discussion started by: lipun4u
5 Replies
6. Shell Programming and Scripting
Dear All,
Good day, Just i would like to know that is there anything called difference operator in awk?
For example, if a file contains 5 columns (as shown below) with both negative and positive values:
Col1 Col2 Col3 Col4 Col5
I need to calculate the difference between Col1 and... (3 Replies)
Discussion started by: Fredrick
3 Replies
7. UNIX for Dummies Questions & Answers
All,
THe below is my script , when i use this i am getting nothing . could any one help me to know what is the use of the << operator below
su - $8 << supo
echo "exportsph $2 $1 $3 $4"
exportsph $2 $1 $3 $4
supo
i also tried as individual command su - userid << supo , when i do... (3 Replies)
Discussion started by: arunkumar_mca
3 Replies
8. UNIX for Dummies Questions & Answers
im new to bash scripting and im just using online tutorials and trial and error. i wanted to write a script to read numbers from a file and find their sum:
#!/bin/bash
theSum=0
for line in $(cat numbers.txt)
do
let "theSum = theSum + $line"
echo "$line"
done
echo "The sum is... (3 Replies)
Discussion started by: astrolux444
3 Replies
9. Shell Programming and Scripting
hi,
I got a requirement to change existing script like below to search additional pattern "DB select". i tried using \| opearator but it is not working :(. Below is the existing code
echo $(cat ${1} |sed -n '/Error in/ {
N
N
N
/Too many/ {
p
... (5 Replies)
Discussion started by: shyamxtasy
5 Replies
10. UNIX for Dummies Questions & Answers
Can anyone guide me whats happening in this program given below. I got the Output 7 7 12 49... i was expecting 5 16 9 25.
First is simple (3+1)*(3+1)
Second is again 3*3; i =4 now
Third i =5 then 5*5;
i don't know where i am going wrong!
#include<stdio.h>
#define PRODUCT(x) (x*x)
int... (5 Replies)
Discussion started by: Abhishek_kumar
5 Replies
REGEXP(6) Games Manual REGEXP(6)
NAME
regexp - regular expression notation
DESCRIPTION
A regular expression specifies a set of strings of characters. A member of this set of strings is said to be matched by the regular
expression. In many applications a delimiter character, commonly bounds a regular expression. In the following specification for regular
expressions the word `character' means any character (rune) but newline.
The syntax for a regular expression e0 is
e3: literal | charclass | '.' | '^' | '$' | '(' e0 ')'
e2: e3
| e2 REP
REP: '*' | '+' | '?'
e1: e2
| e1 e2
e0: e1
| e0 '|' e1
A literal is any non-metacharacter, or a metacharacter (one of .*+?[]()|^$), or the delimiter preceded by
A charclass is a nonempty string s bracketed [s] (or [^s]); it matches any character in (or not in) s. A negated character class never
matches newline. A substring a-b, with a and b in ascending order, stands for the inclusive range of characters between a and b. In s,
the metacharacters an initial and the regular expression delimiter must be preceded by a other metacharacters have no special meaning and
may appear unescaped.
A matches any character.
A matches the beginning of a line; matches the end of the line.
The REP operators match zero or more (*), one or more (+), zero or one (?), instances respectively of the preceding regular expression e2.
A concatenated regular expression, e1e2, matches a match to e1 followed by a match to e2.
An alternative regular expression, e0|e1, matches either a match to e0 or a match to e1.
A match to any part of a regular expression extends as far as possible without preventing a match to the remainder of the regular expres-
sion.
SEE ALSO
awk(1), ed(1), sam(1), sed(1), regexp(2)
REGEXP(6)