J'ai un simple fichier texte nommé "exemple".
Lecture avec la commande du terminal: cat example
Production:
abc cdef ghi jk lmnopq rst uv wxyz
Je veux convertir (transformer) sous la forme suivante: (sortie attendue de cat example
)
abc
cdef
ghi
jk
lmnopq
rst
uv
wxyz
Comment puis-je le faire via la ligne de commande?
(Ce n'est qu'un exemple de fichier, je veux convertir la position du mot en colonne verticale)
command-line
text-processing
Pandya
la source
la source
Réponses:
Quelques choix:
Le classique, utilisez
tr
:Utilisation
cut
Utilisation
sed
Utilisation
perl
Utilisez la coquille
la source
sed
exemple, j'avais besoin d'ajouter un$
pour obtenir bash à remplacer par une nouvelle ligne réelle, c'est-à-dire:sed $'s/ /\\\n/g' example
sed $'s/ /\\n/g'
Essayez la commande ci-dessous
OU
Exemple:
Explication:
RS (Record seperator) est une variable awk intégrée. Dans la première commande, la valeur donnée à la variable de séparation d'enregistrement est l'espace. donc awk rompt l'impression à chaque fois qu'il trouve un espace.
Dans la deuxième commande, la valeur donnée à la variable RS est un espace ou un nouveau caractère de ligne. Cette commande élimine la ligne vierge supplémentaire apparue lors de l'exécution de la première commande.
la source
Vous pouvez utiliser
xargs
,ou mieux
la source
xargs -n 1 < example
vous sauve 1 chatonUtilisation d'un
perl
oneliner:Il remplacera les espaces et les tabulations par "ENTER" (aka
\n
)la source
Personne n'a publié de python, alors voici:
Nous redirigeons le fichier d'entrée dans
python
le flux stdin de, et le lisons ligne par ligne. Chaque ligne est supprimée de son retour à la ligne de fin, divisée en mots, puis rejointe en une chaîne où chaque mot est séparé par un retour à la ligne. L'une et l'autre. Finalement, nous nous retrouvons avec une liste de chaînes, qui est ensuite à nouveau jointe en une chaîne plus grande, et imprimée sur le flux stdout. Celui-ci peut ensuite être redirigé vers un autre fichier avec> out.txt
redirection.la source
Similaire au «tr» ci-dessus mais avec les ajouts:
Fonctionne également pour les onglets
Convertit plusieurs espaces ou tabulations en 1 nouvelle ligne
la source