Se si desidera comprimere lo "spazio bianco", si desidera utilizzare i set di caratteri predefiniti di tr ": vuoto:" (scheda e spazio bianco orizzontale) o ": spazio:" (bianco spazio):
/bin/echo -e "val1\t\tval2 val3" | tr -s "[:blank:]"
Alcuni esempi sono stati eseguiti su Red Hat 5 (GNU tr).
Nel mio caso, volevo normalizzare tutti gli spazi bianchi in un unico spazio in modo da poter fare affidamento sullo spazio come delimitatore.
Come sottolineato dal secondo commento di Dastrobu, mi mancava il testo nella pagina man:
-s uses the last specified SET, and occurs after translation or deletion.
Questo ci consente di eliminare la prima tr. Kudo deve cercare le sue pazienze di fronte alla mia densità.
Prima, analizzava la porta dalla configurazione di Redis. file:
grep "^port" $redisconf | tr "[:blank:]" " " | tr -s "[:blank:]" | cut -d" " -f2
Successivamente, con SET2 specificato con la compressione:
grep "^port" $redisconf | tr -s "[:blank:]" " " | cut -d" " -f2
Produzione:
6379
Per maggiori dettagli sulle sfumature degli spazi bianchi
Dimostrare dove la compressione da sola fallisce quando sono coinvolti personaggi misti successivi che rientrano nella classe di caratteri [: blank:]:
/usr/bin/printf '%s \t %s' id myname | tr -s "[:blank:]" | od -cb
0000000 i d \t m y n a m e
151 144 040 011 040 155 171 156 141 155 145
0000013
Nota: i miei due campi stringa nel formato printf sono separati da 1 spazio, 1 scheda, 1 spazio. Dopo la compressione questa sequenza esiste ancora. Nell'output del dump ottale questo è rappresentato dalla sequenza ascii 040 011 040.