02-01-2019
Quote:
Originally Posted by
bakunin
...
/Addendum: only now i recognised a rather careless typo in my example above, which i have now corrected: instead of the correct ${NAMES/${EXCLUDE_NAME}/} (replace ${EXCLUDE_NAME} with nothing) i used ${NAMES//${EXCLUDE_NAME}} (replace nothing with ${EXCLUDE_NAME} ??), which is fo course wrong. You may want to try again with Solaris as, alas, my trusted old U05 seems not to work any more.
...
I'm happy (or should I be sorry?) to be able to correct your humble self-correction: the original expression was
NOT wrong but corresponds to the second form quoted below.
man ksh:
Quote:
${parameter/pattern/string}
${parameter//pattern/string}
${parameter/#pattern/string}
${parameter/%pattern/string}
Expands parameter and replaces the longest match of pattern with the specified string. Each occurrence of \n in string is replaced by the portion of parameter that matches the nth sub-pattern.
...
In the first form, only the first occurrence of pattern is replaced.
In the second form, each match for pattern is replaced by the specified string.
This User Gave Thanks to RudiC For This Post:
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I have a variable which consists of a string like this:
001 aaabc 44 a bbb12
How do I extract each substring, delimited by the spaces, into new variables - one for each substring?
eg var1 will be 001, var2 will be aaabc, var3 will be 44, var4 will be a, etc?
I've come up with this:... (2 Replies)
Discussion started by: Sniper Pixie
2 Replies
2. Shell Programming and Scripting
Hello,
I am an intermediate scripter. I can usually find and adapt what I need by searching through previous postings, but I'm stumped.
I have a string with the format "{Name1 Release1 Type1 Parent1} {Name2 Release2 Type2 Parent2}". It is being passed as an argument into a ksh script. I need to... (5 Replies)
Discussion started by: drd_2b
5 Replies
3. UNIX for Dummies Questions & Answers
I have a UNIX shell where:
LEVEL=dev
SITE=here
and WHEREIAM=/tmp/$SITE/location/$LEVEL
I want to echo $WHEREIAM in such a way that I get it back with all the environment variables resolved (/tmp/here/location/dev).
This command will be used in a shell script. (5 Replies)
Discussion started by: zambo
5 Replies
4. Shell Programming and Scripting
Hi all,
I'm trying to extract the name of a script that is being run with a full path. i.e.
if the script name is /some/where/path/script_name.ksh
I'd like to extract only: script_name
i know that it is possible to do so in two phases:
echo "${0##*/}" will give me script_name.ksh
and... (4 Replies)
Discussion started by: iceman
4 Replies
5. Shell Programming and Scripting
In a bash script I've set a variable that is the directory name of where an executable lives.
the_dir=`dirname $which myscript`
which equates to something like "/path/to/dir/bin"
I need to cut that down to remove the "bin" so I now have "/path/to/dir/".
This sounds easy but as a... (2 Replies)
Discussion started by: Witty
2 Replies
6. Shell Programming and Scripting
Hello,
I have a paramter $param consisting just of two literals and want to split it into two parameters, so I can combine it to a new parameter <char1><string><char2>, but the following code didn't work:
tmp_PARAM_1=cut -c1 $PARAM
tmp_PARAM_2=cut -c2 $PARAM... (2 Replies)
Discussion started by: ABE2202
2 Replies
7. Shell Programming and Scripting
Hi All,
I am facing a problem and I am not able to solve it.
I have already searched google, but nothing (maybe I am not using the correct key words).
As a database query result, I have a file like below:
fmv:/home/fmv/tmp>cat TestBackRef.txt
/^TEST\(\{4\}\)X\{12\}Y\.txt$/\0#\1/#Test... (2 Replies)
Discussion started by: felipe.vinturin
2 Replies
8. Shell Programming and Scripting
Hi,
I need to convert string "(joe.smith" into "joe_smith"
i.e. I need to remove the leading opening brace '(' and replace the dot '.' with an under score '_'
can anyone suggest a one liner ksh script or unix command for this please (3 Replies)
Discussion started by: sdj
3 Replies
9. Shell Programming and Scripting
Hi all,
I have used a bash script which ultimately converts a string into date using date --date option:
DATE=$DATE" "$TIME" "`date +%Y` //concatenating 2 strings
TMRW_DATE=`date --date="$DATE" +"%s"` //applying date command on string and getting the unixtime
Please use code tags... (7 Replies)
Discussion started by: Rashu123
7 Replies
10. Shell Programming and Scripting
Hi, I have a variable with grep output like this:
WORDS=$(grep -r -c -i -E "palindrom" /"$DIRECTORY"/)
so "echo "$WORDS"" could be:
//directory/file1.txt:0
//directory/file2.txt:0
//directory/file3.txt:3
//directory/file4.txt:1
//directory/file5.txt:0
I need to "sed" my variable... (3 Replies)
Discussion started by: Hornys
3 Replies
LEARN ABOUT OSF1
evmeventnamematch
EvmEventNameMatch(3) Library Functions Manual EvmEventNameMatch(3)
NAME
EvmEventNameMatch, EvmEventNameMatchStr - Match event name
LIBRARY
EVM Support Library (libevm.so, libevm.a)
SYNOPSIS
#include <evm/evm.h>
EvmStatus_t EvmEventNameMatch(
const char *pattern,
EvmEvent_t event,
EvmBoolean_t *match);
EvmStatus_t EvmEventNameMatchStr(
const char *pattern,
const char *candidate,
EvmBoolean_t *match);
OPERANDS
The event name pattern sought. The pattern may be any valid event name string. It may include wildcard characters in place of any compo-
nent. The event containing the event name to be compared against the pattern. The result of the match. This parameter is set to EvmTRUE
if the name matches the pattern, and to EvmFALSE if it does not. A character string to be matched against the pattern
DESCRIPTION
Because special matching rules apply when deciding whether a candidate event name matches a known name, the EVM name matching functions
should be used for matching purposes, rather than the C string comparison functions (memcpm(), strcmp()) . The EVM functions match an
event name against a supplied pattern, ignoring any trailing appended components in the candidate name, and correctly matching wildcard
characters.
The EvmEventNameMatch function takes an event and an event name pattern as input, and returns an indication of whether the event contains a
name which matches the pattern in the match output argument. The pattern may be any valid event name string, and may also include wildcard
characters in place of any component. A wildcard * in the pattern matches zero or more name components. A ? matches exactly one compo-
nent. A match occurs if the event name matches all components indicated by the pattern, even if the name has additional trailing elements.
The EvmEventNameMatchStr function performs the same check as EvmEventNameMatch, but takes a character string as the candidate event name,
rather than extracting it from a supplied event.
Both functions set the match output argument to EvmTRUE if the name matches the pattern, and to EvmFALSE if it does not.
RETURN VALUES
The comparison was successful. The value of the match parameter indicates whether the name matches the pattern. The supplied pattern con-
tains invalid characters. The supplied event does not contain a name.
ERRORS
None
FILES
None
SEE ALSO
Routines: memccpy(3), strcat(3)
Event Management: EVM(5)
EVM Events: EvmEvent(5)
Programmer's Guide delim off
EvmEventNameMatch(3)