在linux中如何join2个文件

在linux中如何join2个文件,第1张

概述在linux中如何join2个文件

我有2个文件file_A和file_B。 文件file_A包含文件名,然后在空格之后代码行。 这个代码行可以有任意types的字符说blanks,:等等。它看起来像这样。 请注意,文件中的代码行没有被()包围。 这只是为了说明的目的。

bash $ cat file_A

file_name1 (code line a) file_name1 (code line b) file_name2 (code line c) file_name2 (code line d) file_name2 (code line e)

文件file_B在file_A中包含file_name和频率

bash $ cat file_B

在shell中按名称sorting目录内容(包括隐藏文件)

在BASH中反转多列文件的sorting顺序

如何在一行或多行中查找具有相同值的行,并使用awk添加值

为什么我的工具输出覆盖本身,如何解决?

如何使用AWK从string中删除所有小写字符?

file_name1 2 file_name2 3

我想输出为:(频率,文件名,code_line)

2 file_name1 (code line a) 2 file_name1 (code line b) 3 file_name2 (code line c) 3 file_name2 (code line d) 3 file_name2 (code line e)

bash $ join -1 1 -2 1 file_B file_A> file_C

我得到file_C为(我得到连接字段作为第一个字段)

file_name1 2 (code line a) file_name1 2 (code line b) file_name2 3 (code line c) file_name2 3 (code line d) file_name2 3 (code line e)

我如何获得第一场的频率场?

我知道,通过连接,我可以使用-o格式并在输出中提及我想要的字段和顺序。 但是我怎么说,把所有的代码行(可以包含任何东西,所以没有这样的分隔符)如此

谢谢,

Unix Awk数组不打印值

将每N行input放入一个新列

从文本文件中删除奇数行或偶数行

AWK中删除空格

Shell命令从文本文件中去除^ M个字符

join file_B file_A | awk '{t=$1; $1=$2; $2=t; print}' > file_C

注意join不支持在输出格式中指定一个范围的字段,所以下面的内容有点儿怪异,但是在“代码行”中最多支持8个空格,

join -o 1.2,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9 file_B file_A

sed 's#([^ ]*) ([^ ]*) (.*)#$2 $1 $3#g'

注:也许你将不得不摆脱正常的括号后面的空格,使其工作。

总结

以上是内存溢出为你收集整理的在linux中如何join2个文件全部内容,希望文章能够帮你解决在linux中如何join2个文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1250022.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存