2013-08-02 2 views
1

Как правильно выравнивать столбцы файла в awk, sed или bash?Как правильно выравнивать столбцы в файле

Этот файл в настоящее время оставлен в силе и ограничен в пространстве.

Могу ли я использовать printf или rev?

Вот что мой файл выглядит следующим образом:

$ cat file 
14,107  aaa 12,436 0.0 0 0 313 0 373 
3,806,201 bbb 1,573 0.0 0 0 -25 0 -25 

И использование rev не дает мне выход я ищу.

$rev file | column -t | rev 
14,107 aaa 12,436 0.0 0 0 313 0 373 
3,806,201 bbb 1,573 0.0 0 0 -25 0 -25 
+0

Действительно ли ваш файл отформатирован? Когда вы задаете вопрос о форматировании, это ключ к правильному представлению вашего файла. Если вам нужна помощь с уценкой Stackoverflow, см. Http://stackoverflow.com/help/formatting –

+0

Исправлено - извинения за все изменения. – user196711

+0

Если 'rev' не работает для ваших данных, я бы использовал python для его форматирования, но я не думаю, что вы, например, представляете вашу фактическую проблему, и я не хочу играть в игру ревизии. –

ответ

3

Вместо конкретного примера здесь является общим решением, используя трюк с rev:

$ cat file 
a 10000.00 x 
b 100 y 
c 1 zzzZZ 

$ rev file | column -t | rev 
a 10000.00  x 
b  100  y 
c   1 zzzZZ 

column -t Где заменяется все, что вы пытаетесь сделать.

+0

+1. обратите внимание, что это приведет к правильному выравниванию каждого столбца. –

+0

@glennjackman вправо, похоже, это то, о чем просит ОП. Я изменил пример, чтобы поведение было лучше показано. –

+0

Не будет работать должным образом, если крайние левые столбцы не имеют одинаковой ширины, но, тем не менее, умны – rix0rrr

Смежные вопросы