将数据粘贴到bash中

杰罗格

我举一个例子,说明我需要如何处理数据。我有两个用制表符分隔的文本文件。

cat in1.tsv

111 A B C
111 D E F
111 G H I
222 A B C
333 A B C
333 D E F

该表可以包含大约数千行。列数小于100。第一列可以包含重复的子句(如111和333)。

cat in2.tsv

111 a b c 
222 a b c 
333 d e f

在此文件中,第1列中的值仅出现一次。我需要根据其第一列匹配来合并这两个文件。

cat output.tsv

111 A B C 111 a b c
111 D E F 111 a b c
111 G H I 111 a b c
222 A B C 222 a b c 
333 A B C 333 d e f
333 D E F 333 d e f 

如果矩阵的大小相同,我的解决方案将起作用:

paste  <(sort in1.tsv) <(sort in2.tsv) > output.tsv

感谢awk,bash或其他对许多行都能快速运行的程序的帮助。

伊尼安

Awk 营救!

awk 'BEGIN{FS=OFS="\t"}FNR==NR{for(i=2;i<=NF;i++) map[$1]=(map[$1] FS $i); next}$1 in map{print $0,$1,map[$1]}' in2.tsv in1.tsv

产生预期的制表符分隔格式的输出。OFS="\t"如果您不希望O / P标签分开,请删除

就逻辑而言,创建一个包含每列1in2.csv的值的映射到哈希映射中map[],然后in1.csv包含$1的映射中选择包含相同值的那些行并打印行内容。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

比粘贴模式更快地将数据粘贴到vim中?

BASH-提示将多行输入粘贴到文件中

BASH将源文件粘贴到主源中

如何将 Excel 中的数据粘贴到 PowerPoint 中

Powershell将数据粘贴到现有工作表中

将大量数据粘贴到R中的剪贴板

表格将JavaScript粘贴到数据库中

如何使用Confluence 5.7将数据粘贴到表中?

将数据粘贴到熊猫数据框

将值完全粘贴到Excel中

将内容粘贴到DIV中

将文本粘贴到dplyr mutate中

将链接粘贴到javascript中

如何将Excel数据粘贴到Powerpoint中并仍然允许用户编辑数据

如何将多行bash代码粘贴到终端中并一次运行?

Fedora 34:将多个命令粘贴到 bash 终端行为更改中

在Ubuntu上使用bash脚本将URL粘贴到终端中

如何使用bash脚本将一个文件内容粘贴到不同的文件中?

如何将数据复制并粘贴到使用for循环在VBA中创建的工作表中?

是否可以将 .CopyFromRecordset 中的数据粘贴到特定单元格中

如何将数据(文件或目录)粘贴到已安装的 snap 包中。?

如何将转置的数据粘贴到Pandas Excel中的新行

将每个“ X”列粘贴到数据框中的单个列

将数据写入NSPasteboard并粘贴到Excel中(按列和行拆分)

使用 vba 将数据粘贴到下一个空列中

使用python将多个字典中的数据粘贴到csv //

如何使用 $ 将 R 数据框中的列粘贴到公式的循环中?

使用 JavaScript 将多行数据粘贴到单个单元格中

将剪贴板中的数据粘贴到其他工作簿