Fonction Shell
Une approche un peu plus verbeuse, mais qui fonctionne avec n'importe quel type de premier et dernier caractère, qui ne doit pas nécessairement être le même. L'idée de base est que nous prenons une variable, la lisons caractère par caractère, et ajoutons seulement ceux que nous voulons dans une nouvelle variable. que nous voulons dans une nouvelle variable
Voici l'ensemble de cette idée formatée en une belle fonction
crop_string_ends() {
STR="$1"
NEWSTR=""
COUNT=0
while read -n 1 CHAR
do
COUNT=$(($COUNT+1))
if [ $COUNT -eq 1 ] || [ $COUNT -eq ${#STR} ]
then
continue
fi
NEWSTR="$NEWSTR"$CHAR
done <<<"$STR"
echo $NEWSTR
}
Et voici cette même fonction en action :
$> crop_string_ends "|abcdefg|"
abcdefg
$> crop_string_ends "HelloWorld"
elloWorl
Python
>>> mystring="|abcdefg|"
>>> print(mystring[1:-1])
abcdefg
ou en ligne de commande :
$ python -c 'import sys;print sys.stdin.read()[1:-2]' <<< "|abcdefg|"
abcdefg
AWK
$ echo "|abcdefg|" | awk '{print substr($0,2,length($0)-2)}'
abcdefg
Ruby
$ ruby -ne 'print $_.split("|")[1]' <<< "|abcdefg|"
abcdefg