Декартово произведение двух файлов (в виде наборов строк) в GNU / Linux - PullRequest
14 голосов
/ 25 октября 2009

Как я могу использовать однострочные оболочки и обычные инструменты GNU для объединения строк в два файла, как в декартовом продукте? Какой самый краткий, красивый и "линукс" способ?

Например, если у меня есть два файла:

$ cat file1
a
b
$ cat file2
c
d
e

Результат должен быть

a, c
a, d
a, e
b, c
b, d
b, e

Ответы [ 11 ]

1 голос
/ 25 октября 2009
awk 'FNR==NR{ a[++d]=$1; next}
{
  for ( i=1;i<=d;i++){
    print $1","a[i]
  }
}' file2 file1

# ./shell.sh
a,c
a,d
a,e
b,c
b,d
b,e
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...