Quelqu'un sait-il comment utiliser Sed pour supprimer tous les espaces vides d'un fichier texte? Je n'ai pas essayé d'utiliser la commande de suppression "d" pour le faire, mais je n'arrive pas à le comprendre
«Supprimer tous les espaces vides» peut signifier l'une des différentes choses:
0x20
.\t
"\n
" et autresSi sed
ce n'est pas une exigence pour une raison cachée, mieux vaut utiliser le bon outil pour le travail.
La commande tr
est principalement utilisée pour traduire (d'où le nom "tr") une liste de caractères en une liste d'autres caractères. En tant que cas d'angle, il peut se traduire par la liste vide de caractères; L'option -d
( --delete
) supprimera les caractères qui apparaissent dans la liste.
La liste des caractères peut utiliser des classes de caractères dans la [:...:]
syntaxe.
tr -d ' ' < input.txt > no-spaces.txt
tr -d '[:blank:]' < input.txt > no-spaces.txt
tr -d '[:space:]' < input.txt > no-spaces.txt
sed
Avec sed, la [:...:]
syntaxe des classes de caractères doit être combinée avec la syntaxe des jeux de caractères dans les expressions rationnelles [...]
, ce qui entraîne une certaine confusion [[:...:]]
:
sed 's/ //g' input.txt > no-spaces.txt
sed 's/[[:blank:]]//g' input.txt > no-spaces.txt
sed 's/[[:space:]]//g' input.txt > no-spaces.txt
tr -d ' ' < input.txt > no-spaces.txt
.tr
maintenant. (Le voyez-vous ailleurs?)Vous pouvez l'utiliser pour supprimer tous les espaces blancs dans
file
:la source
man sed | sed "s/ //g"
/
par un caractère différent, par exemple:sed "ss ssg"