permet de dire « textfile » contient les éléments suivants:Bash: textfile Divisé en mots avec des caractères non alphanumériques comme délimiteurs
lorem$ipsum-is9simply the.dummy text%of-printing
et que vous voulez imprimer chaque mot sur une ligne distincte. Cependant, les mots doivent être définis non seulement par des espaces, mais par tous les caractères non-alphanumériques. Ainsi, les résultats devraient ressembler à:
lorem
ipsum
is9simply
the
dummy
text
of
printing
Comment puis-je accomplir cela en utilisant le shell Bash?
Quelques notes:
Ce n'est pas une question de devoirs.
Le cas le plus simple où les mots ne doivent être déterminés que par des espaces est facile. en train d'écrire:
for i in `cat textfile`; do echo $i; done;
fera l'affaire, et retour:
lorem$ipsum-is9simply the.dummy text%of-printing
Pour les mots de division par des caractères non alphanumériques que j'ai vu des solutions qui utilisent la variable d'environnement IFS (liens ci-dessous), mais je voudrais éviter d'utiliser IFS pour deux raisons: 1) il faudrait (je pense) mettre l'IFS à une longue liste de caractères non alphanumériques. 2) Je trouve ça moche.
Voici les deux Questions et réponses sur & Comme je l'ai trouvé
How do I split a string on a delimiter in Bash?
How to split a line into words separated by one or more spaces in bash?
parfait, c'est exactement ce que je recherchais. Merci! (Je suis désolé, je n'ai pas assez de réputation pour voter pour votre réponse) – Sv1
@ Sv1: Vous aurez probablement une grande réputation bientôt. J'ai voté votre question parce que vous avez bien documenté ce que vous vouliez et pour toutes les recherches que vous avez faites à ce sujet. – grok12
Et si vous avez des nombres décimaux? – Leyu