Le mieux que vous pouvez faire avec tr
est de supprimer les traits d'union laissant des lignes vides. La meilleure façon de faire ce que vous voulez est Amro la réponse en utilisant sed
. Il est important de se rappeler que tr
traite des listes de caractères plutôt que des chaînes de caractères multiples, donc il ne sert à rien de mettre deux traits d'union dans vos paramètres.
$ tr -d "-" textfile
out1
out2
out3
Cependant, afin d'avoir tr
des traits d'union de la poignée et des caractères supplémentaires, vous devez mettre fin aux options à l'aide --
ou mettre le trait d'union après le premier caractère. Disons que vous voulez vous débarrasser de traits d'union et lettre o:
$ tr -d "-o" textfile
tr: invalid option -- 'o'
Try `tr --help' for more information.
$ tr -d -- "-o" textfile
ut1
ut2
ut3
$ tr -d "o-" textfile
ut1
ut2
ut3
Il est souvent une bonne idée d'utiliser la terminaison d'option --
lorsque la liste de caractères est une variable si mauvaise données ne crée pas d'erreurs inutilement. Cela est également vrai pour les commandes autres que tr
.
tr -d -- $charlist $file
aucun chat besoin. sed '/^-/d' fichier – ghostdog74
Et la commande 'd' à sed est assez non-idiomatique. La solution de grep de Jerry va être plus familière à la plupart des gens. –