Differences between revisions 3 and 39 (spanning 36 versions)
Revision 3 as of 2009-06-04 20:25:25
Size: 2518
Editor: GeoHump
Comment:
Revision 39 as of 2016-03-23 06:21:03
Size: 243
Editor: MirtaFrods
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Bash can do string operations. LOTS of string operations. This is an introduction to bash string operations for those new to Bash's special tool/feature called "Parameter Expansion", (PE), with a focus on typical string operations. Note Bash's Parameter Expansion, (PE), capability is a lot more powerful than the typical string manipulation calls you may be used to. There are some twists in the road up ahead.

Here is a list of some typical string manipulation functions/subroutines that you may already be familiar with:


 * strlen returns the length of the string
 * leftstr returns a string N chars long starting from the left hand side
 * rightstr returns a string N chars long starting from the right hand side
 * midstr returns a string N chars long starting from offset K chars from the beginning/end
 * substr returns copy of the string with all instances matching a patter replaced with a new string
 * basename returns the last component of a pathname (everything after the last "/")
 * dirname returns everything in the pathname up to, but not including the last "/"
 * getext returns a filenames extension
 * dropext returns the filename without its extension.

This article will cover how to do all of these using the Bash PE and will introduce the more powerful actions available with PE's. Pleasenote there is a BasfFaq about PE's already. That FAQ cover's more of the scope of PE capabilities, where this one instead focuses on string operations.

lets assume we have a string variable named fullpath whose value is "usr/home/JosephBaldwin/Its_only_Rock_and_Roll.mp3"





to perform a basename in bash we use the following PE expression: ${fullpath##*/}

to perform a dirname in bash we use the following PE expression: ${fullpath%/*}

to perform a dropext in bash we use the following PE expression: ${fullpath%.*}

to perform a droppre in bash we use the following PE expression: ${fullpath#*.}

to perform a getext in bash we use the following PE expression: ${fullpath##*.}

to perform a strlen in bash we use the following PE expression: ${#fullpath}

to perform a leftstr in bash we use the following PE expression: ${fullpath:0:$2}

to perform a rightstr in bash we use the following PE expression: ${fullpath:$(( 0 - $2 ))}

to perform a midstr in bash we use the following PE expression: ${fullpath:$2:$3}

to perform a substr in bash we use the following PE expression: ${fullpath//$2/$3}




----
CategoryShell
Early Childhood (Pre-Primary School) Teacher Jospeh from Fort Saskatchewan, enjoys to spend time fast, Corel Draw x7 keygen - [[http://ow.ly/ZrHSu|reference]], and computer. Had been in recent past traveling to Mapungubwe Cultural Landscape.

Early Childhood (Pre-Primary School) Teacher Jospeh from Fort Saskatchewan, enjoys to spend time fast, Corel Draw x7 keygen - reference, and computer. Had been in recent past traveling to Mapungubwe Cultural Landscape.

BashFAQ/100 (last edited 2023-06-26 10:03:19 by StephaneChazelas)