Questo dovrebbe essere davvero semplice, ma per qualche motivo non funziona:
sed -i.bak -E 's/\t/ /' file.txt
Invece di sostituire i caratteri di tabulazione, sostituisce i t
caratteri. Ho provato tutte le varianti che mi sono venute in mente, giocando con le citazioni, ecc. Ho cercato su Google e ho trovato tutti gli altri usando espressioni abbastanza simili e sembrano funzionare per loro.
La -E
è una cosa OS X. Ho pensato che l'errore potesse essere il risultato di una strana stranezza di OS X sed
, quindi l'ho provato anche con Ruby (senza -i
) e ho ottenuto lo stesso risultato:
ruby -pe '$_.gsub!(/\t/," ")' < file.txt > file.new
Sto usando Bash 3.2.51 su OS X e iTerm, anche se non riesco a vedere come nessuno di questi possa essere terribilmente rilevante. Non ho impostato nessuna strana variabile d'ambiente, anche se posso pubblicare quelle che ritieni possano essere rilevanti.
Cosa potrebbe esserci di sbagliato?
UPDATE : Devo aver fatto qualche altro errore o typo quando ho provato la versione di Ruby, poiché Gilles sottolinea che fa il lavoro (e non ho mai avuto di lui guidare me sbagliato!). Non sono sicuro di cosa sia successo, ma sono abbastanza sicuro che deve essere stato un mio errore.
\t
nellased
dichiarazione conCTRL-V<TAB>
cui<TAB>
è il tasto tab eCTRL-V
è la chiave di controllo ev
premuti insieme.