我的 Linux 机器上有两个文件。第一个“list.txt”包含一个对象列表(2649 个对象),而第二个“list_interactors.txt”包含一个较短的列表,其中包含先前列表中的一些对象(719 个对象),并且对于这些对象中的每一个都有其他对象列一些关联的变量。我想获得所有对象(2649)的列表以及文件“list_interactors”中特定对象的关联变量。
例子:
文件 list.txt
6tyr_A_002__________
7yer_2_009__________
3erf_1_001__________
2dr5_D_2-3__________
Run Code Online (Sandbox Code Playgroud)
文件 list_interactors.txt
6tyr_A_002__________ 6tyr1_B QRT54R AAAAA
3erf_1_001__________ 3erf2_B QAEF6R XXXXX
Run Code Online (Sandbox Code Playgroud)
output.txt
6tyr_A_002__________ 6tyr1_B QRT54R AAAAA
7yer_2_009__________
3erf_1_001__________ 3erf2_B QAEF6R XXXXX
2dr5_D_2-3__________
Run Code Online (Sandbox Code Playgroud)
我对编程语言不是很实用。我尝试在此脚本中使用函数 grep:
grep -f list.txt list_interactors.txt
Run Code Online (Sandbox Code Playgroud)
但输出是一个类似于文件“list_interactors.txt”的文件。
请问你能帮帮我吗?
我有两个不同的文件,我想使用第一列合并它们的信息。
文件1.txt
A,info1,info2
234,info3,info4
CD,info5,info6
Run Code Online (Sandbox Code Playgroud)
文件2.txt
234,ccc,bb
CD,aaa,dd
Run Code Online (Sandbox Code Playgroud)
预期输出.csv
A,info1,info2,,
234,info3,info4,ccc,bb
CD,info5,info6,aaa,dd
Run Code Online (Sandbox Code Playgroud)
我尝试使用awk
(不是我的脚本)join
,但grep
没有获得所需的结果。
awk -F "," 'FNR==NR {h[$1] = $2;next} BEGIN{ OFS = "\t"} {print $0,$2?h[$1]:"0"}' file1.txt prova2.txt
Run Code Online (Sandbox Code Playgroud)
和
join -a 1 <(sort file1.txt) <( sort file2.txt) > output.csv
Run Code Online (Sandbox Code Playgroud)
有人可以帮我吗?