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?
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?
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
Questo funziona su MacOS 10.8:
sed -E "s/[[:space:]]+/ /g"
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.