如何使paste -d 第二个文件在循环时打印下来?

如何使paste -d 第二个文件在循环时打印下来?

我想让第二个文件标签“b”向下打印第一个文件标签“a”,就像向下移动文件创建新行一样,我希望它一直向下打印,直到第二个文件的第一行到达最后一行第一个文件的行。我是否必须将其放入文件本身,或者我可以从终端执行此操作吗?

它现在做什么:

paste -d ' ' a b   

1  a                       
2  b                       
3  c                       
4  d                       
5  e                      
6                               
7                               
8                                 
9                                                                              

期望的输出:

1  ↓                          
2  a                       
3  b                       
4  c                       
5  d                       
6  e                       
7                               
8                               
9                               

1                               
2                               
3  ↓                          
4  a                      
5  b                       
6  c                       
7  d                       
8  e                       
9                                                                  

        Re-looping                   
1  b                       
2  c                       
3  d                       
4  e                             
5                               
6                               
7  ↓                          
8  List is about to loop        
9  a                       

答案1

这篇文章不会直接解决您的问题,但会引导您走向接近您正在寻找的方向。

PS:顺便说一句,我不会用于paste这项数据处理工作。我会选择 awk 或其他更合适的工具。

无论如何,使用paste,您可以考虑以下“脏”解决方案:

情况1:

$ k=3
$ paste -d '  ' a <(printf ' %.0s\n' $(seq 1 $k);cat b)
1  
2  
3  
4 a
5 b
6 c
7 d
8 e
9 
#You can adjust the value of $k with a kind of loop

案例2:

$ k=3
$ s=4
$ paste -d '  ' a <(printf ' %.0s\n' $(seq 1 $k);tail -n +$s b)
1
2
3
4 d
5 e
6
7
8
9

答案2

如果目的是创建 中 中的单词a与 中 中的单词的叉积b,您可以join像这样使用:

$ join -1 2 -2 2 a b
 1 a
 1 b
 1 c
 1 d
 1 e
 2 a
 2 b
 2 c
 2 d
 2 e
 3 a
 3 b
 3 c
 3 d
 3 e
 4 a
 4 b
 4 c
 4 d
 4 e
 5 a
 5 b
 5 c
 5 d
 5 e
 6 a
 6 b
 6 c
 6 d
 6 e
 7 a
 7 b
 7 c
 7 d
 7 e
 8 a
 8 b
 8 c
 8 d
 8 e
 9 a
 9 b
 9 c
 9 d
 9 e

在不存在的字段上连接文件将创建两个文件中行的所有可能组合。请注意,这会在每行的开头插入一个空格。

相关内容