J'ai une ficelle comme ça:
|abcdefg|
Et je veux obtenir une nouvelle chaîne appelée quelque part (comme chaîne2) avec la chaîne originale sans les deux |
caractères au début et à la fin, de façon à avoir ceci:
abcdefg
Est-ce possible à Bash?
bash
command-line
scripts
Matteo Pagliazzi
la source
la source
awk -F\| '{ print $2 }' <<<"|string|"
awk
solutions sympas . J'ai besoin d'apprendreawk
.IFS='|' read string2 <<< $string
:)"${string:1:-1}"
man bash
.Voici une solution indépendante de la longueur de la chaîne (bash):
la source
Après quelques articles listés ici, il semble que le moyen le plus simple de le faire est:
edit: fonctionne sur Ubuntu avec Bash 4.2; ne fonctionne pas sur centOS avec bash 4.1
la source
Une autre façon est d'utiliser
head
&tail
commandes:la source
[something something]
but avec l'objectif de couper les crochets, donc j'ai bienecho "[something something]" | tail -c +2 | head -c -2
travaillé. Merci pour un tuyau!echo -n "|abcdefg|" | tail -c +2 | head -c -1
. Je ne suis pas sûr de savoir pourquoi mes modifications ont été rejetées ... C'est très triste, pour être honnête. Voirman head
pour plus d'informationsEt un autre:
la source
Vous pouvez également utiliser sed pour supprimer le | pas simplement en référençant le symbole lui-même mais en utilisant des références de position comme dans:
Où ':' sont les délimiteurs (vous pouvez les remplacer par tout caractère ne figurant pas dans la requête, tout signe suivant le s le fera) Ici ^ (caret) signifie au début de la chaîne d'entrée et $ (dollar) signifie à la fin. Le . (point) que c'est après le curseur et celui qui est avant le signe dollar représente un seul caractère. En d'autres termes, nous supprimons les premier et dernier caractères. Gardez à l'esprit que cela supprimera tous les caractères, même si | ce n'est pas présent dans la chaîne.
EX:
la source
fonction shell
Une approche un peu plus verbeuse, mais qui fonctionne sur tous les types de premier et dernier caractères, ne doit pas nécessairement être identique. L'idée de base est que nous prenons une variable, la lisons caractère par caractère et ajoutons uniquement ceux que nous souhaitons à une nouvelle variable.
Voici toute cette idée formatée dans une fonction intéressante
Et voici la même fonction en action:
Python
ou en ligne de commande:
AWK
Rubis
la source
Solution petite et universelle:
Spécial dans ce cas et permettant que le '|' personnage peut être ou non:
la source
De http://tldp.org/LDP/abs/html/parameter-substitution.html
la source