Bash: добавьте столбцы к таблице

Я вхожу <<< как M-3 <в режиме оболочки.

2
24.11.2013, 01:31
2 ответа

Вы хотите paste утилита:

paste history today > new_history

По умолчанию, paste разделяет строки с a tab. Можно изменить это с -d опция.

paste только работы как ожидалось, если файлы, которые будут объединены, имеют то же количество строк в том же порядке, и без ключей, которые, возможно, должны были бы быть удалены из одного из файлов. Для немного более сложной утилиты посмотрите join

7
27.01.2020, 21:51

Самым легким путем я могу думать, чтобы сделать, это должно было бы циклично выполниться через предшествующий дневной вывод и распечатать ту строку + новое содержание, которое Вы хотите в конце каждой из тех строк.

$ while read i; do printf "%s %s\n" "$i" "..new stuff.."; done < prior.txt

Пример

Скажите, что я поместил Ваши строки в файл и называю его prior.txt.

file1 3443 words 11-20-13 44 4788 words 11-23-13
file2 4457 words ...

Если бы я выполняю вышеупомянутую команду, я получил бы следующий вывод:

$ while read i; do printf "%s %s\n" "$i" "..new stuff.."; done < prior.txt
file1 3443 words 11-20-13 44 4788 words 11-23-13 ..new stuff..
file2 4457 words ... ..new stuff..

Подробнее

Вышеупомянутое использование a while цикл для прохождения через каждой строки prior.txt. Я затем использую printf распечатать ту строку, которая содержится в переменной $i, сопровождаемый строкой ..new stuff...

Можно подкачать собственное содержание в ..new stuff.. или вышеупомянутое приращения по мере необходимости для удовлетворения потребностям.

1
27.01.2020, 21:51
  • 1
    Но как это работало бы, если "... новый материал..." является списком (из файла или команды как туалет или ls-l). Кажется, что решение с командой вставки было бы более просто реализовать. –  Quora Feans 23.11.2013, 20:04
  • 2
    @QuoraFea - это действительно зависит от того, что Вы делаете. Вставка легче, если содержание уже находится в 2 файлах при генерации информации через цикл затем, это было бы метод быть более соответствующим. Вы не указывали, как Вы собирались генерировать данные для добавления к столбцам. Оба ответа корректны, но только один подходит для Вашего Q. –  slm♦ 23.11.2013, 20:13
  • 3
    , который я имею в виду, как Вы выполняете команду вместо "... нового материала..." Если я поместил "ls-l" (например), вместо него, это просто буквально добавит команду "ls-l", не вывод его. –  Quora Feans 23.11.2013, 22:37
  • 4
    @QuoraFea - О, легкий. Можно поместить это вместо "..new stuff..". Просто поместите то, что Вы хотите в "$(...)". Но это поместит весь вывод от этой команды, таким образом, я не буду думать, что это - то, что Вы после. Как я сказал, я должен буду видеть больше Вашего фактического сценария, чтобы дать Вам лучший ответ, чем это. –  slm♦ 23.11.2013, 23:23

Теги

Похожие вопросы