小编Tom*_*aso的帖子

两个列表之间的grep

我的 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”的文件。

请问你能帮帮我吗?

grep bash

3
推荐指数
2
解决办法
735
查看次数

使用第一列合并两个文件

我有两个不同的文件,我想使用第一列合并它们的信息。

文件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)

有人可以帮我吗?

awk text-processing join

2
推荐指数
1
解决办法
893
查看次数

标签 统计

awk ×1

bash ×1

grep ×1

join ×1

text-processing ×1