Je dois remplacer tous les espaces blancs à l'intérieur de mon texte par des virgules. J'utilise actuellement cette ligne mais cela ne fonctionne pas: j'obtiens en sortie un fichier texte qui est exactement le même que celui d'origine:
sed 's/[:blank:]+/,/g' orig.txt > modified.txt
Merci
text-processing
anévrisme
la source
la source
Réponses:
Avec
sed
:Ou avec
perl
:Modifier: pour exclure les sauts de ligne en perl, vous pouvez utiliser un double négatif
's/[^\S\n]+/,/g'
ou une correspondance avec uniquement les caractères d'espace blanc de votre choix's/[ \t\r\f]+/,/g'
.la source
+
opérateur de sed, je viens de mettre à jour ma réponse. Les sauts de ligne sont whitepsace en perl, vous devrez donc faire votre classe whitepsace manuellement si vous ne voulez pas l'inclure. J'ai ajouté deux solutions pour cela comme wel.En utilisant
tr
:Cela remplacera tout espace blanc horizontal par une virgule. Tout espace répété ne sera remplacé que par une seule virgule.
la source
Ici, le nom du fichier est Serveurs .. Il contient le contenu ci-dessous ..
Si nous utilisons la commande ci-dessus, nous pouvons obtenir la sortie ci-dessous.
la source