Sponsored Content
Top Forums Shell Programming and Scripting ksh String Manipulation - removing variables from within a variable Post 303029831 by RudiC on Friday 1st of February 2019 11:51:33 AM
Old 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

extract from string variable into new variables

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

KSH split string into variables

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

String manipulation using ksh

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

string manipulation in ksh

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

Bash string variable manipulation

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

Bash:How to split one string variable in two variables?

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

Ksh in Linux Removing: "\0" From String

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

String manipulation using ksh script

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

How to convert string(variable) into date( epoch) in ksh on HPUX machine?

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

Variable string manipulation

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
fnmatch(3)						     Library Functions Manual							fnmatch(3)

NAME
fnmatch - Matches filename patterns LIBRARY
Standard C Library (libc.so, libc.a) SYNOPSIS
#include <fnmatch.h> int fnmatch( const char *pattern, const char *string, int flags); STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: fnmatch(): XPG4, XPG4-UNIX Refer to the standards(5) reference page for more information about industry standards and associated tags. PARAMETERS
Contains the pattern to which the string parameter is to be compared. Contains the string to be compared against the pattern parameter. Contains a bit flag specifying the configurable attributes of the comparison to be performed by the fnmatch function. The flags parameter modifies the interpretation of the pattern and string parameters. It is the bitwise inclusive OR (|) of 0 (zero) or more of the following flags, which are defined in the fnmatch.h file. Slash in the string parameter only matches slash in the pattern parameter. Leading period in the string parameter must be exactly matched by period in the pattern parameter. Unless FNM_NOESCAPE is set, preceding a character in pattern with a (backslash character) causes fnmatch() to match that character in string. For example, \ matches a backslash in string. If FNM_NOESCAPE is set, (backslash) is interpreted as an ordinary character. If the FNM_PATHNAME flag is set in the flags parameter, a / (slash) in the string parameter is explicitly matched by a / in the pattern parameter. It is not matched by either the * (asterisk) or ? (question-mark) special characters, nor by a bracket expression. If the FNM_PATHNAME flag is not set, the / is treated as an ordinary character. If FNM_PERIOD is set in the flags parameter, then a leading period in the string parameter only matches a period in the pattern parameter; it is not matched by either the asterisk or question-mark special characters, nor by a bracket expression. A period is determined to be leading according to the setting of the FNM_PATHNAME flag, according to the following rules: If the FNM_PATHNAME flag is set, a period is leading only if it is the first character in the string parameter or if it immediately follows a slash. If the FNM_PATHNAME flag is not set, a period is leading only if it is the first character of the string parameter. If FNM_PERIOD is not set, no special restrictions are placed on matching a period. A (backslash character) quotes the next character, unless FNM_NOESCAPE is set. If FNM_NOESCAPE is set, (backslash) is treated as itself. DESCRIPTION
The fnmatch() function checks the string specified by the string parameter to see if it matches the pattern specified by the pattern param- eter. This routine follows the match criteria of the glob() function. The fnmatch function is useful when a program needs to perform pattern matching, such as when a directory is to be searched for a particu- lar string (as is the case with the find command). A program like the pax command can also use the fnmatch() function to perform its pat- tern matching operations. RETURN VALUES
If the value in the string parameter matches the pattern specified by the pattern parameter, then the fnmatch() function returns 0 (zero). If there is no match, the fnmatch() function returns FNM_NOMATCH, which is defined in the fnmatch.h file. If an error occurs, the fnmatch() function returns a nonzero value. RELATED INFORMATION
Functions: glob(3), globfree(3), regcomp(3) Standards: standards(5) delim off fnmatch(3)
All times are GMT -4. The time now is 09:14 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy