Comment puis-je assortir les espaces dans sed? Dans mes données, je souhaite faire correspondre tous les 3 + espaces blancs suivants (espace de tabulation) et les remplacer par 2 espaces. Comment cela peut-il être fait?
La classe de caractères \s
correspond aux caractères d'espacement <tab>
et <space>
.
Par exemple:
$ sed -e "s/\s\{3,\}/ /g" inputFile
remplacera chaque séquence d’au moins 3 espaces blancs par deux espaces.
REMARQUE: Pour la conformité POSIX, utilisez la classe de caractères [[:space:]]
au lieu de \s
, car cette dernière est une extension GNU sed. Voir les spécifications POSIX pour sed et BREs
Cela fonctionne sur MacOS 10.8:
sed -E "s/[[:space:]]+/ /g"
Certaines versions plus anciennes de sed peuvent ne pas reconnaître\s comme un jeton de correspondance d’espace. Dans ce cas, vous pouvez faire correspondre une séquence d'un ou plusieurs espaces et onglets avec '[XZ] [XZ] *' où X est un espace et Z est un onglet.
sed 's/[ \t]*/"space or tab"/'