Digamos que " archivo de texto" contiene lo siguiente:Bash: archivo de texto Dividir en palabras con caracteres no alfanuméricos como delimitadores
lorem$ipsum-is9simply the.dummy text%of-printing
y que desea imprimir cada palabra en una línea separada. Sin embargo,, las palabras se deben definir no solo por espacios, sino por todos los caracteres no alfanuméricos. Por lo que los resultados deben ser:
lorem
ipsum
is9simply
the
dummy
text
of
printing
¿Cómo puedo lograr esto mediante el intérprete de comandos?
Algunas notas:
Esto no es una cuestión tareas.
El caso más simple cuando las palabras deben determinarse solo por espacios, es fácil. Sólo escribir:
for i in `cat textfile`; do echo $i; done;
hará el truco, y regreso:
lorem$ipsum-is9simply the.dummy text%of-printing
Para la división de palabras por caracteres no alfanuméricos que he visto soluciones que utilizan el IFS variable ambiental (enlaces siguientes), pero me gustaría evitar el uso de IFS por dos razones: 1) requeriría (creo) establecer el IFS en una larga lista de caracteres no alfanuméricos. 2) Me parece feo.
Éstos son los dos Q relacionada & Como ya he encontrado
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?
perfecto, esto es exactamente lo que estaba buscando. ¡Gracias! (Lo siento, no tengo la reputación suficiente para votar su respuesta) – Sv1
@ Sv1: Probablemente tenga una gran reputación pronto. Voté tu pregunta por lo bien que documentabas lo que querías y por toda la investigación que hiciste al respecto. – grok12
¿Qué pasa si tienes números decimales? – Leyu