如何在文件中每4行对第一列进行排序,并在第二列中使用键

nish

示例文件:

第一列可以有固定的4个无序值集 world1.com,world2.com,world3.com or world4.com

第二列是属于每一行的键,因此四组中的每一个都有唯一的随机键。

world4.com           /randomkeyhghgdh778/key67567
world1.com           /randomkeygahjuh572/key639839
world2.com           /randomkey788gauh72/key63whjk
world3.com           /randomkey788gauh72/key63whjk
world1.com           /randomkeyhueh34778/key67uuu77
world4.com           /randomkey8998382/key6hh77686
world3.com           /randomkey7HHHH0000/key6333355k
world2.com           /randomkeyJJJJ1111/key63333

等等

所需的输出:

world1.com           /randomkeygahjuh572/key639839
world2.com           /randomkey788gauh72/key63whjk
world3.com           /randomkey788gauh72/key63whjk
world4.com           /randomkeyhghgdh778/key67567
world1.com           /randomkeyhueh34778/key67uuu77
world2.com           /randomkeyJJJJ1111/key63333
world3.com           /randomkey7HHHH0000/key6333355k
world4.com           /randomkey8998382/key6hh77686
约翰1024

要按世界组织文件:

$ paste -d'\n' <(grep world1 file) <(grep world2 file) <(grep world3 file) <(grep world4 file)
world1.com           /randomkeygahjuh572/key639839
world2.com           /randomkey788gauh72/key63whjk
world3.com           /randomkey788gauh72/key63whjk
world4.com           /randomkeyhghgdh778/key67567
world1.com           /randomkeyhueh34778/key67uuu77
world2.com           /randomkeyJJJJ1111/key63333
world3.com           /randomkey7HHHH0000/key6333355k
world4.com           /randomkey8998382/key6hh77686

怎么运行的

我们可以grep用来选择每个世界的线:

$ grep world4 file
world4.com           /randomkeyhghgdh778/key67567
world4.com           /randomkey8998382/key6hh77686

paste合并多个文件中的行。粘贴命令可能如下所示:

paste -d'\n' file1 file2 file3 file3.

实际上,我们不必为每个世界都创建真实的文件。相反,我们可以使用流程替换为每个对象创建类似文件的对象

paste -d'\n' <(grep world1 file) <(grep world2 file) <(grep world3 file) <(grep world4 file)

bash,zsh和AT&T ksh88和ksh93支持进程替换,但不支持dash,pdksh或mksh。

附加功能:按键排序

为了说明这种方法的灵活性,我们将对每个世界的键进行排序。注意:排序会破坏行集。如果要将集合放在一起,请不要使用它。

我们可以使用grep,然后再将sort每个世界分开,然后使用paste

$ paste -d'\n' <(grep world1 file | sort -k2,2) <(grep world2 file | sort -k2,2) <(grep world3 file | sort -k2,2) <(grep world4 file | sort -k2,2)
world1.com           /randomkeygahjuh572/key639839
world2.com           /randomkey788gauh72/key63whjk
world3.com           /randomkey788gauh72/key63whjk
world4.com           /randomkey8998382/key6hh77686
world1.com           /randomkeyhueh34778/key67uuu77
world2.com           /randomkeyJJJJ1111/key63333
world3.com           /randomkey7HHHH0000/key6333355k
world4.com           /randomkeyhghgdh778/key67567

请注意,这sort取决于语言环境。不同locales可能导致不同的订单。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

对每一列进行排序,并在第一行中获取底部2个值的相应键ID

AutoHotkey 如何在按降序对第一列中的数字进行排序时保持第二列的顺序?

如果第一列显示相等的值,如何使用第二列进行排序

如何从第二列减去每一行并保持第一列

按第一列然后第二列对文件进行排序

如何在第一列中删除重复项并在第二列中输出值?

如何使用CSS网格将第一列的第一列居中并在第二行中放置其他三列?

如何在Bootstrap中将第二行的第二列与相同的第一列或第一行对齐?

如何在Power Shell中使用LINQ查询对csv文件的第二列进行排序

如何在Matlab中使用第一列和第二列的值作为索引来获取数组中的第三列

如何对表中的每一列进行排序并在SQL中显示每列中的最高值?

如何在文本上按第一列进行排序,然后用'sort'按数字进行第二排序?

如何在awk中删除具有相同的第一列和较低的第二列的行?

按第二列和第一列对二维数组进行排序

MySQL根据第一列对第二列和第三列进行排序

如何循环获得最小RMSE值,并在每一列中使用“应用”进行预测

以第一列的降序对数据进行排序,对于相等的值,以升序使用第二列

如何在多索引数据框中命名第一列的第二行?现在是空白

如何按Excel或GSheet中第二列的值对第一列中具有相等值的列表进行排序?

相对于第一列对第二列进行排序

使第二列唯一并在第一列中添加它们的各自值

如何使第二列的第二行与第一列的高度相同

PHP数组-从CSV文件读取,创建第一列键,第二列值

如何使用awk将第一列和第二列的第一行打印为单列?

获取单行和两列结果:在第一列中使用count(*)并在第二列中使用连接字符串

按第一列对2d数组进行排序,然后对第二列进行排序

使用awk分别对文件中的每一列进行数值排序

如何使用AWK循环浏览第一个文件并在第一个文件中的每一行旁边打印第二个文件中的所有行?

使用第一列中的名称和第二列中的链接保存 .csv 文件(IndentationError:应为缩进块)