Сдвиг заголовков столбцов вправо - PullRequest
0 голосов
/ 12 октября 2018

У меня есть файл, который я хочу обработать в bash или python.Структура состоит из 4 столбцов, но только с 3 заголовками столбцов:

input.txt

1STCOLUMN   2NDCOLUMN   THIRDCOLUMN
input1         12             33             45
input22        10             13              9
input4          2             23             11
input4534       3              1              1

Я пытаюсь сместить столбцы заголовков вправо и добавить заголовок "INPUTS" в первый столбец (входной столбец).

Требуемый вывод: добавление заголовка столбца

Desired-output-step1.csv

    INPUTS     1STCOLUMN     2NDCOLUMN    THIRDCOLUMN
    input1          12         33            45
    input22         10         13             9
    input4           2         23            11
    input4534        3          1             1

Я пытался использовать sed:

sed -i '1iINPUTS, 1STCOLUMN, 2NDCOLUMN, THIRDCOLUMN' input.txt

Но я не предпочитаю вводить имена столбцов дляпо этой причине.

Как мне просто вставить новый заголовок в первый столбец, а остальные заголовки столбцов сдвинуть вправо?

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

вместо подсчета и проверки пробелов вы можете позволить column -t выполнить задание заполнения и форматирования:

sed '1s/^/INPUTS /' ip.txt|column -t

Это даст вам:

INPUTS     1STCOLUMN  2NDCOLUMN  THIRDCOLUMN
input1     12         33         45
input22    10         13         9
input4     2          23         11
input4534  3          1          1
0 голосов
/ 12 октября 2018

Вы можете указать, какую строку заменять, используя номера строк

$ sed '1s/^/INPUTS       /' ip.txt
INPUTS       1STCOLUMN   2NDCOLUMN   THIRDCOLUMN
input1         12             33             45
input22        10             13              9
input4          2             23             11
input4534       3              1              1
  • здесь, 1 означает, что вы хотите применить команду s только для 1-й строки
  • s/^/INPUTS / вставить что-то в начало строки, вам нужно будет отрегулировать интервал по мере необходимости
...