2010-02-24 11:53:58 +0000 2010-02-24 11:53:58 +0000
232
232

Comment faire correspondre les espaces blancs dans les séd ?

Comment faire correspondre les espaces blancs dans les séd ? Dans mes données, je veux faire correspondre tous les 3+ caractères d'espacement suivants (tabulation) et les remplacer par 2 espaces. Comment faire ?

Réponses (4)

240
240
240
2010-02-24 12:08:44 +0000

La classe de caractères \s correspondra aux caractères espacement <tab> et <space>.

Par exemple :

$ sed -e "s/\s\{3,\}/ /g" inputFile

remplacera chaque séquence d'au moins 3 espaces par deux espaces.


REMARK : Pour la conformité POSIX, utilisez la classe de caractères [[:space:]] au lieu de \s, puisque ce dernier est une extension GNU sed. Voir les spécifications POSIX pour sed et BREs

70
70
70
2013-08-28 20:28:34 +0000

Cela fonctionne sur MacOS 10.8 :

sed -E "s/[[:space:]]+/ /g"
14
14
14
2010-04-07 15:12:34 +0000

Certaines anciennes versions de sed peuvent ne pas reconnaître \s comme un jeton de correspondance dans un espace blanc. Dans ce cas, vous pouvez faire correspondre une séquence d'un ou plusieurs espaces et tabulations avec “[XZ][XZ]*” où X est un espace et Z une tabulation.

11
11
11
2014-07-22 14:52:32 +0000
sed 's/[\t]*/"space or tab"/'