2017-02-13 3 views
0

Besoin de convertir le fichier Largeur fixe en 'espace' délimité dans OS X. Cependant, j'ai besoin que le délimiteur soit n'importe quelle quantité d'espaces qui est supérieure à un.Largeur fixe Fichier à 'Espace' délimité dans OS X

Principal Position  Year  Salary  Bonus  Compensation(2) 
----------------------- ---- ---------- -------- --------------- 
Sample Name here . . . xxxx  $xxx,xxx  $x    $x 

La sortie requise ressemblerait à ceci; Cependant, je suis en utilisant le code suivant et il ne fonctionne pas parce qu'un delimiter seul espace ne suffit pas:

Column -s $' ' example.txt 

Est-il possible de mettre mon delimiter à une quantité d'espaces supérieurs à 1? Merci!

+0

Que faites-vous avec ces données? La meilleure façon de traiter votre entrée peut être sélectionnée par la sortie la plus appropriée à vos besoins. – ghoti

Répondre

0

Vous pouvez utiliser sed pour remplacer des motifs avec un autre texte. Par exemple:

$ sed 's/ \{2,\}/@/g' sample.txt 
Principal [email protected]@[email protected]@Compensation(2) 
[email protected]@[email protected]@--------------- 
Sample Name here . . [email protected]@$xxx,[email protected][email protected][email protected] 

Si vous remplacez vos séparateurs plusieurs espaces avec des espaces, cependant, vous tomberez des problèmes lorsque les champs eux-mêmes contiennent des espaces, comme ils le font dans l'échantillon (les en-têtes et données). Mieux vaut utiliser un autre délimiteur.