gpt4 book ai didi

bash - 如何在 bash 中重复行并粘贴不同的列?

转载 作者:行者123 更新时间:2023-11-29 09:23:25 25 4
gpt4 key购买 nike

在 bash 中是否有一种简短的方法可以根据需要重复文件的第一行,以便将其粘贴到 kronecker 产品类型的另一个文件中(对于你们这些数学家)?我的意思是,我有一个文件 A:

    a
b
c

还有一个文件B:

    x
y
z

我想按如下方式合并它们:

    a x
a y
a z
b x
b y
b z
c x
c y
c z

我可能会编写一个脚本,逐行读取文件并循环遍历它们,但我想知道是否有一个简短的单行命令可以完成同样的工作。我想不出一个,如您所见,我也缺少一些要搜索的关键字。 :-D

提前致谢。

最佳答案

您可以使用这个单行 awk 命令:

awk 'FNR==NR{a[++n]=$0; next} {for(i=1; i<=n; i++) print $0, a[i]}' file2 file1
a x
a y
a z
b x
b y
b z
c x
c y
c z

分手:

NR == FNR {                  # While processing the first file in the list
a[++n]=$0 # store the row in array 'a' by the an incrementing index
next # move to next record
}
{ # while processing the second file
for(i=1; i<=n; i++) # iterate over the array a
print $0, a[i] # print current row and array element
}

关于bash - 如何在 bash 中重复行并粘贴不同的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32625005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com