====== BASH - Get a SubString ====== ===== Format ===== ${var:start_position:length} or ${var:start_position -length} or ${var: -start_position -length} or ${var: -start_position:length} ---- ===== Return every character ===== var="abcdefgh" echo ${#var:0} returns: abcdefgh **NOTE:** A starting position of 0 this means start at the begin; and therefore returns everything. ---- ===== Return a substring from a specific position ===== var="abcdefgh" echo ${#var:3} returns: defgh **NOTE:** This 3 specifies to start from position 3. ---- ===== Return a substring between a string ===== var="abcdefgh" echo ${#var:3:2} returns: de **NOTE:** This starts at position 3; and then returns the next 2 characters. ---- ===== Return a substring from beginning of a string ===== var="abcdefgh" echo ${#var:0:2} returns: ab **NOTE:** This starts at position 0; and then returns the next 2 characters. ---- ===== Return last few characters from back of a string ===== var="abcdefgh" echo ${#var: -4} returns: efgh **NOTE:** This returns the last 4 characters. There must be a SPACE before the minus sign! Be aware that if the length after the colon is longer than the string, then nothing is returned. ---- ===== Return a substring from back of a string ===== var="abcdefgh" echo ${#var -1 -3} returns: efgh **NOTE:** This returns the last character; and 3 extra characters. There must be a SPACE before the minus signs. Be aware that if the length of any position is longer than the string, then nothing is returned. ---- ===== Substrings with Concatenation ===== var="abcdefgh" echo ${var:0:(-1 -4)}XYZ returns: abcXYZ ---- ===== Extracting Substrings Using Cut ===== **cut** can be used to ‘cut’ a portion of a string, aka the substring. #!/bin/bash Str="My name is Peter" #subStr=${Str:0:6} subStr=$(echo $Str| cut -d ' ' -f 1-3) echo $subStr ----