удобное форматирование вывода

удобное форматирование вывода

Есть ли способ отформатировать вывод команды grep, чтобы красиво выровнять столбцы? Например:

4TO/struct-2222332/coord-2222332.out:          FINAL HEAT OF FORMATION =       -299.61496 KCAL/MOL =   -1253.58899 KJ/MOL
2E/struct-1212123/coord-1212123.out:          FINAL HEAT OF FORMATION =       -299.61496 KCAL/MOL =   -1253.58901 KJ/MOL
OT4/struct-2222121/coord-2222121.out:          FINAL HEAT OF FORMATION =       -299.61497 KCAL/MOL =   -1253.58904 KJ/MOL
E3/struct-1312322/coord-1312322.out:          FINAL HEAT OF FORMATION =       -299.61497 KCAL/MOL =   -1253.58903 KJ/MOL  

Я хочу выделить 40 пробелов для столбца один и выровнять их слева. Аналогично сделать то же самое для других столбцов на основе ожидаемого максимального размера каждого столбца.

решение1

Вы можете использовать columnкоманду (если вы используете Linux), чтобы отформатировать данные в столбцы с разделителями табуляции. Я не думаю, что вы можете указать другую ширину столбца для первого столбца по сравнению с другими столбцами.

bash-[24]$ column -t /tmp/output
4TO/struct-2222332/coord-2222332.out:  FINAL  HEAT  OF  FORMATION  =  -299.61496  KCAL/MOL  =  -1253.58899  KJ/MOL
2E/struct-1212123/coord-1212123.out:   FINAL  HEAT  OF  FORMATION  =  -299.61496  KCAL/MOL  =  -1253.58901  KJ/MOL
OT4/struct-2222121/coord-2222121.out:  FINAL  HEAT  OF  FORMATION  =  -299.61497  KCAL/MOL  =  -1253.58904  KJ/MOL
E3/struct-1312322/coord-1312322.out:   FINAL  HEAT  OF  FORMATION  =  -299.61497  KCAL/MOL  =  -1253.58903  KJ/MOL

Другой вариант — проанализировать файлы, разделить поля и обработать столбцы самостоятельно с помощью awkи printf().

bash-[54]$ awk '{printf "%-40s",$1 ; $1=""; printf "%-s\n",$0}' /tmp/output
4TO/struct-2222332/coord-2222332.out:    FINAL HEAT OF FORMATION = -299.61496 KCAL/MOL = -1253.58899 KJ/MOL
2E/struct-1212123/coord-1212123.out:     FINAL HEAT OF FORMATION = -299.61496 KCAL/MOL = -1253.58901 KJ/MOL
OT4/struct-2222121/coord-2222121.out:    FINAL HEAT OF FORMATION = -299.61497 KCAL/MOL = -1253.58904 KJ/MOL
E3/struct-1312322/coord-1312322.out:     FINAL HEAT OF FORMATION = -299.61497 KCAL/MOL = -1253.58903 KJ/MOL

Связанный контент