Bash remove first and last characters from a string
You can do
string="|abcdefg|"
string2=${string#"|"}
string2=${string2%"|"}
echo $string2
Or if your string length is constant, you can do
string="|abcdefg|"
string2=${string:1:7}
echo $string2
Also, this should work
echo "|abcdefg|" | cut -d "|" -f 2
Also this
echo "|abcdefg|" | sed 's/^|\(.*\)|$/\1/'
Here's a solution that is independent of the length of the string (bash):
string="|abcdefg|"
echo "${string:1:${#string}-2}"
Going off a few posts listed here it seems the simplest way to do it is:
string="|abcdefg|"
echo ${string:1:-1}
edit: works on ubuntu with bash 4.2; does not work on centOS with bash 4.1