Articles of join

Linux组合了多个文件

我有多个文件必须结合。 这是例如两个文件。 1.TXT Allele Sequence B*07:02:01 ABCDE B*07:33:01 ABCD B*07:41 AB 2.txt Allele Sequence B*07:02:01 FGHIJ B*07:33:01 EFGH B*07:41 CD 分隔符是(\ t) 我想要得到像 B*07:02:01 ABCDEFGHIJ B*07:33:01 ABCDEFGH B*07:41 ABCD 我尝试下面。 awk -F"\t" ' {key = $1} FNR==NR {line[key]=$0; next} key in line {print line[$1], $2} ' $1 $2 > output_2.txt 然后结果如 Allele Sequence^M Sequence^M B*07:02:01 […]

如何在Linux上删除非常大的文件

我有一个63 GB的文件,需要在Linux上删除。 我的垃圾现在只有6GB。 我试图将63 GB的文件拆分成63个1 GB的文件,这工作。 然而,我分裂的文件仍然存在,所以我仍然不能删除它。 我想解压缩这个63 GB的文件,但是当我这样做的时候,我发现它有一些地方已经损坏了,所以我必须删除它,然后重试。 本来我有63个1GB的文件,.z01,.z02,.z03 ….,.z62,.zip。 我search了互联网,发现解压这个海量文件的方法是先把它们连接在一起,那就是63GB的文件。 然而,当我试图解压缩,它只是部分解压缩,并没有工作,所以我现在需要删除这个63 GB的文件,并再次尝试将63个zip文件(.z01,.z02 … z62,.zip),希望他们这次没有部分腐败,这样我就可以把他们解开来,让我的家人回忆起来。 我存储了多年的照片和video的一个网站正在closures,他们把这个zip文件发送给我,这些文件必须连接在一起,然后才能解压缩。 我在另一个2位的ZIP文件总目录上试过了这个程序,所以.z01,.zip(每个1GB)在一个2GB的文件中连接在一起。 然后,我解压缩这些成功没有问题,并从本网站获得了一些其他上传,2 GB的文件,当然删除没有问题。 我使用了一个我从互联网上下载的程序将它们连接在一起(称为HJ Split,它们将文件连接在一起并将它们分开)。 不过,我想我可以使用命令行“join”来join2个zip文件。 我使用“解压缩”将2个join的文件解压缩到我的Linux照片和video存储目录中。 另外 – 可能只是增加我的垃圾的大小暂时超过63 GB,所以我可以删除损坏的文件? 我曾经想过,当我拆分文件,一旦程序完成,它会删除旧的巨大的文件,但它仍然存在! 我无法摆脱它重新开始。 我用的命令是:split –bytes = 1G joined_63GB_file.zip 谢谢 – 任何帮助都能帮助我恢复家人的记忆,特别是当我的孩子还年轻的时候。

通过公共列标题join2个文件(不含awk / sed)

基本上我想要从file2获取所有logging,但是要过滤出其头部没有出现在file1 例如 : 文件1 Name Location 文件2 Name Phone_Number Location Email Jim 032131 xyz xyz@qqq.com Tim 037903 zzz zzz@qqq.com Pimp 039141 xxz xxz@qqq.com 产量 Name Location Jim xyz Tim zzz Pimp xxz 有没有办法做到这一点没有awk或sed ,但仍然使用coreutils工具? 我已经尝试过使用join ,但不能得到它的工作。

根据两列合并两个文件

我有一个问题非常类似于以前的post: 合并两个文件在unix中的单个列,但我想合并我的数据基于两列(订单是相同的,所以不需要sorting)。 例, subjectid subID2名称年龄 12 121简16 24 241克里斯汀90 15 151克拉克78 23 231 Joann 31 subjectid subID2 prob_disease 12 121 0.009 24 241 0.738 15 151 0.392 23 231 1.2E-5 和输出看起来像 subjectid SubID2 prob_disease名称年龄 12 121 0.009简16 24 241 0.738克里斯汀90 15 151 0.392克拉克78 23 231 1.2E-5乔安娜31 当我使用连接它只考虑第一列(subjectid),并重复SubID2列。 有没有办法join或以其他方式做到这一点? 谢谢

Bash:join数字列

如果我想在我的Ubuntu上使用join ,我需要首先按照字典顺序对这两个文件进行sorting(根据join –help ),然后才能join: tail -n +2 meta/201508_1 | sort -k 1b,1 > meta.txt tail -n +2 keywords/copy | sort -k 1b,1 > keywords.txt join meta.txt keywords.txt -1 1 -2 1 -t $'\t' (我也使用tail从他们两个删除标题) 但是,我不想按照字典顺序对文件进行sorting,而是想用数字来sorting它们:这两个文件中的第一列是一个ID。 tail -n +2 meta/201508_1 | sort -k1 -n > meta.txt tail -n +2 keywords/copy.txt | sort -k1 -n > keywords.txt […]

Bash – 按列join(合并)文件

有三个带有列的文件,分隔符是“|”,行中的列可能是空的。 我需要join第二个和第三个文件,首先在第一个文件中使用列3和4,在第二个和第三个文件中使用第一列。 例如: FILE1.TXT: 123456||4|11|17|A||10|B|1 123457||4|11|17|A||12||1 123458||5|11|17|A||1|Б|1 123459||6|13|17|A||1|Б|1 FILE2.TXT: 4|Forth 5|Fifth 6|Sixth file3.txt: 11|st.|Eleventh 13|pr.|Thirteenth 我想要什么输出: 123456||4|Forth|11|st.|Eleventh|17|A||10|B|1 123457||4|Forth|11|st.|Eleventh|17|A||12||1 123458||5|Fifth|11|st.|Eleventh|17|A||1|Б|1 123459||6|Sixth|13|pr.|Thirteenth|17|A||1|Б|1 如何编写Bash脚本,将做我所需要的? 我知道这是awt命令,但我不能写脚本。 感谢您的回答。

Linux连接实用程序抱怨input文件未被sorting

我有两个文件: file1的格式为: field1;field2;field3;field4 (file1最初是未sorting的) file2的格式为: field1 (file2已sorting) 我运行以下2个命令: sort -t\; -k1 file1 -o file1 # to sort file 1 join -t\; -1 1 -2 1 -o 1.1 1.2 1.3 1.4 file1 file2 我收到以下消息: join: file1:27497: is not sorted: line_which_was_identified_as_out_of_order 为什么发生这种情况? (我也试过整理file1,考虑到整行不仅是行的第一个字段,但没有成功) sort -t\; -c file1 sort -t\; -c file1不输出任何内容。 在27497线左右,情况确实很奇怪,这意味着sorting不能正确地工作: XYZ113017;… line 27497–> XYZ11301;… XYZ11301;…

如何基于列join多个txt文件?

我有txt文件,所有这些都在同一个目录中。 每个人都有2列的数据。 他们看起来像这样: Label1 DataA1 Label2 DataA2 Label3 DataA3 我想用join来创build一个像这样的大文件。 Label1 DataA1 DataB1 DataC1 Label2 DataA2 DataB2 DataC2 Label3 DataA3 DataB3 DataC3 目前,我有 joinfileA fileB | join – fileC 但是,我有太多的文件,以便列出所有这些文件是可行的 – 有没有办法为这种命令编写一个循环?

为什么unix实用程序在不同的Linux发行版上产生不同的结果?

我有两个sorting的文件: cat file1 1 3 cat file2 C 1 D B 2 E A 3 F 我运行这个命令: join -1 1 -2 2 -v2 file1 file2 使用GNU coreutils 6.9.92.4-f088d-dirt 2008年1月在Debian 4.3.2-1.1上得到: B 2 E 使用GNU coreutils 8.12.197-032bb 2011年9月在Ubuntu 4.4.3-4ubuntu5.1(Ubuntu精确(12.04.2 LTS))我得到: 2 BE 为什么我会得到不同的结果? 为什么我无法在任何地方find这种变化? 这里是两个人输出的内容: -a FILENUM print unpairable lines coming from file FILENUM, where FILENUM […]

bashjoin多个带空replace的文件(-e选项)

我有下面的代码一起join多个文件。 它工作正常,但我想将空值replace为0,所以我用-e“0”。 但它不起作用。 有任何想法吗? for k in `ls file?` do if [ -a final.results ] then join -a1 -a2 -e "0" final.results $k > tmp.res mv tmp.res final.results else cp $k final.results fi done 例: file1: a 1 b 2 file2: a 1 c 2 file3: b 1 d 2 Results: a 1 0 1 […]