移动csv文件中的行-Linux命令

移动csv文件中的行-Linux命令,linux,csv,command-line,rows,Linux,Csv,Command Line,Rows,我有一个csv文件,其中有许多这种类型的列和行 foo.csv 1 1 x1 1 1 x2 1 1 y1 1 1 y2 . . . 1 1 x1 1 1 y1 1 1 x2 1 1 y2 . . . . . . 我应该使用什么命令或创建什么脚本以使其看起来像这样: foo.csv 1 1 x1 1 1 x2 1 1 y1 1 1 y2 . . . 1 1 x1 1 1 y1 1 1 x2 1

我有一个csv文件,其中有许多这种类型的列和行

foo.csv

1 1 x1
1 1 x2
1 1 y1
1 1 y2
. . .
1   1   x1   1   1   y1
1   1   x2   1   1   y2
.   .   .     .   .    .
我应该使用什么命令或创建什么脚本以使其看起来像这样:

foo.csv

1 1 x1
1 1 x2
1 1 y1
1 1 y2
. . .
1   1   x1   1   1   y1
1   1   x2   1   1   y2
.   .   .     .   .    .
换言之,将最后一行从foo.csv(从1 y1开始)移动到第一行的列

提前谢谢

保罗

$cat/tmp/1
abc 1
def 2
ghi 3
pqr 4
uvw 5
xyz 6

$paste根据需要调整awk记录选择器

paste -d " " <(awk '$3~"x"' tests.txt) <(awk '$3~"y"' tests.txt)

paste-d”是用逗号分隔的实际文件吗?也许值得计算文件中的行数,而不是硬编码值
wc-l
该命令适用于此两列情况。如果我希望最后一行跨越更多列,该怎么办。例如,abc 1 def 2 ghi 3 pqr 4 uvw 5 xyz 6到abc 1 ghi 3 uvw 5 def 2 pqr 4 xyz 6?@Paul:您可以对命令使用比2更多的参数,也可以运行该命令recursively@Paul:也谢谢你,保罗!