0

有两个文件

➜  ~ cat file1
a
b
c
➜  ~ cat file2
1
2
3

有什么shell命令能得到如下的效果

select * from t1, t2 order by a;
+------+------+
| a    | b    |
+------+------+
| a    |    1 |
| a    |    2 |
| a    |    3 |
| b    |    1 |
| b    |    2 |
| b    |    3 |
| c    |    1 |
| c    |    2 |
| c    |    3 |
+------+------+

2个回答

1

自己用循环吧。StackOverflow 上也有人问这个问题,但是没有简洁的答案。

0

嵌套循环也还好

➜  ~ while read line1; do while read line2; do echo $line1 $line2; done < file2; done < file1
a 1
a 2
a 3
b 1
b 2
b 3
c 1
c 2
c 3

另外若真这么简单的话 倒是也可以这样弄

➜  ~ echo {'a ','b ','c '}{1,2,3} | awk '{for(i=1;i<=NF;i+=2) {print $i " " $(i+1)} }'
a 1
a 2
a 3
b 1
b 2
b 3
c 1
c 2
c 3

撰写答案