Comment puis-je supprimer une sous-chaîne d'une chaîne de caractères dans un script shell?
J'ai un fichier avec une liste de mots comme:
FIRST_WORD abc
FIRST_WORD(1) bcd
FIRST_WORD(2) def
SECOND_WORD gh
THIRD_WORD jiu
THIRD_WORD(1) lom
...
et je veux enlever le (i)
, lorsqu'il est présent, pour obtenir:
FIRST_WORD abc
FIRST_WORD bcd
FIRST_WORD def
SECOND_WORD gh
THIRD_WORD jiu
THIRD_WORD lom
...
- La question du titre ne correspond pas à l'exemple!?
- Donc, si
(i)
apparaît d'ailleurs il ne devrait pas être remplacé, ou s'il n'apparaissent jamais autrement que comme par exemples? - Depuis l'OP n'a pas répondu, pour un long temps, j'ai mis à jour la question du titre. Veuillez envisager de supprimer votre commentaire et la mise à jour votre réponse (le meilleur de l'OMI) pour le mentionner.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez l'obtenir:
De sortie:
echo ${test:0:3}
et vous obtiendrez123
Remplacement Global de tous les chiffres chaînes trouvées à l'intérieur des parenthèses à l'aide de
sed
:Enlever les 3 premiers caractères à l'aide de
sed
:De l'essayer.
Cela pourrait fonctionner pour vous (GNU sed):
Cependant il serait peut-être exagéré, si:
est suffisante.
Ici est un pur bash mise en œuvre: