Как напрямую добавить столбцы одного файла в другой файл - PullRequest
0 голосов
/ 19 января 2019

Требование: только grep / cut / join / cat / regex / for / while.

Я новичок в утилитах оболочки.

У меня есть fileA и fileB, содержащие равное количество строк. Я хочу добавить столбцы файла B в файл A.

Я пытаюсь это (cat fileA && cat fileB) > fileC. Но это не работает должным образом.

Ожидаемое:

FiLea:

1
2
3

FILEB:

1
2
3

тогда fileC должен иметь:

1 1
2 2
3 3

Ответы [ 2 ]

0 голосов
/ 19 января 2019

С bash:

#!/bin/bash

while true; do
  read -r f1 <&3 || break
  read -r f2 <&4 || break
  echo "$f1 $f2"
done 3<fileA 4<fileB >fileC

Вывод в файлC:

1 1
2 2
3 3

См .: https://unix.stackexchange.com/a/26604/74329

0 голосов
/ 19 января 2019

В одну сторону с помощью Perl

$ perl -e ' BEGIN { @a=map{chomp;$_} qx(cat fileA); @b=map{chomp;$_} qx(cat fileB); printf("%s %s\n",$a[$_],$b[$_]) for (0..$#a) } '
1 1
2 2
3 3

$

Обычно это делается с помощью команды вставки

$ paste -d" " fileA fileB
1 1
2 2
3 3

$

Ваши входные данные

$ cat fileA
1
2
3

$ cat fileB
1
2
3

$

Команда вставки просто объединяет файлы по вертикалииспользуя разделитель вкладок по умолчанию.Вы можете переопределить разделитель, используя опцию -d

...