La question est un peu flou - l'exemple e fourni peut signifier que vous voulez supprimer tous les #, ou retirer la pièce après le dernier ".", ou retirer la pièce après le premier "1", ou même supprimer tous les caractères après le caractère 13. Veuillez clarifier.
Si vous voulez dire que vous voulez supprimer N premiers caractères dans une chaîne (par exemple « jusqu'à un caractère # 13 »), faire echo testFile.txt.1 | cut -c14-
. Pour conserver les caractères 1 à 13, par contre echo testFile.txt.1 | cut -c1-13
Si vous voulez dire que vous voulez supprimer les caractères de début jusqu'à la première occurrence d'un caractère spécifique (dans votre exemple, cela semble être "1") , faites echo testFile.txt.1 | perl -e 's/^[^1]*//;'
. Pour supprimer tout ce qui suit le premier « 1 », faire echo testFile.txt.1 | perl -e 's/1.*$//;'
Si vous voulez supprimer tous les # s, faire echo testFile.txt.1 | perl -e 's/\d//g;'
ou sans Perl, echo testFile.txt.1 | tr -d "[0-9]"
Si vous souhaitez supprimer tout ce qui suit le dernier « », faire echo testFile.txt.1 | perl -e 's/\.[^.]+/./;'
La question est un peu floue - pourriez-vous s'il vous plaît clarifier le "supprimer des parties d'une chaîne jusqu'à un certain caractère?"; L'exemple peut être interprété de plusieurs façons et, pour être honnête, la plupart d'entre eux sont pour "enlever après un certain caractère" et non "jusqu'à". – DVK