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

Come abbinare gli spazi bianchi in sed?

Come posso abbinare gli spazi bianchi in sed? Nei miei dati voglio abbinare tutti i 3+ caratteri successivi dello spazio bianco (spazio della scheda) e sostituirli con 2 spazi. Come si può fare?

Risposte (4)

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

La classe di caratteri \s corrisponderà ai caratteri degli spazi bianchi <tab> e <space>.

Ad esempio:

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

sostituirà ogni sequenza di almeno 3 spazi bianchi con due spazi.


REMARK: Per la conformità POSIX, usare la classe di caratteri [[:space:]] invece di \s, poiché quest'ultima è un'estensione GNU sed. Vedere le specifiche POSIX per sed e BREs

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

Questo funziona su MacOS 10.8:

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

Alcune versioni più vecchie di sed potrebbero non riconoscere le \x22s come un gettone di corrispondenza di spazio bianco. In questo caso è possibile abbinare una sequenza di uno o più spazi e schede con ‘[XZ][XZ]*’ dove X è uno spazio e Z è una scheda.

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