小编Bhu*_*ale的帖子

用来自不同文件的另一列替换文件的一列中的匹配条目

我有两个制表符分隔的文件,如下所示:

文件 1:

NC_008146.1     WP_011558474.1  1155234 1156286 44173
NC_008146.1     WP_011558475.1  1156298 1156807 12
NC_008146.1     WP_011558476.1  1156804 1157820 -3
NC_008705.1     WP_011558474.1  1159543 1160595 42748
NC_008705.1     WP_011558475.1  1160607 1161116 12
NC_008705.1     WP_011558476.1  1161113 1162129 -3
NC_009077.1     WP_011559727.1  2481079 2481633 8
NC_009077.1     WP_011854835.1  1163068 1164120 42559
NC_009077.1     WP_011854836.1  1164127 1164636 7
Run Code Online (Sandbox Code Playgroud)

文件2:

NC_008146.1     GCF_000014165.1_ASM1416v1_protein.faa
NC_008705.1     GCF_000015405.1_ASM1540v1_protein.faa
NC_009077.1     GCF_000016005.1_ASM1600v1_protein.faa
Run Code Online (Sandbox Code Playgroud)

我想将 file1 的第 1 列与 file2 匹配,并用文件 2 的相应第 2 列条目替换自身。输出将如下所示:

GCF_000014165.1_ASM1416v1_protein.faa     WP_011558474.1  1155234 1156286 44173
GCF_000014165.1_ASM1416v1_protein.faa     WP_011558475.1  1156298 1156807 12
GCF_000014165.1_ASM1416v1_protein.faa     WP_011558476.1  1156804 1157820 …
Run Code Online (Sandbox Code Playgroud)

awk

8
推荐指数
2
解决办法
2600
查看次数

使用awk从相邻列和连续行中减去数字

我有一个制表符分隔的文件,如下所示:

NZ_CP023599.1   WP_003911075.1  302845  305406
NZ_CP023599.1   WP_003898428.1  471171  472583
NZ_CP023599.1   WP_003402248.1  534387  535157
NZ_CP023599.1   WP_003402301.1  552556  553950
NZ_CP023599.1   WP_003402318.1  558837  559697
Run Code Online (Sandbox Code Playgroud)

我需要从下一行的第 3 列中的数字中减去每行第 4 列中的数字,然后将下一行中的差值打印为第 5 列。

输出将如下所示:

NZ_CP023599.1   WP_003911075.1  302845  305406  
NZ_CP023599.1   WP_003898428.1  471171  472583  165765
NZ_CP023599.1   WP_003402248.1  534387  535157  61804
NZ_CP023599.1   WP_003402301.1  552556  553950  17399
NZ_CP023599.1   WP_003402318.1  558837  559697  4887
Run Code Online (Sandbox Code Playgroud)

我如何使用 awk 解决这个问题?

awk

5
推荐指数
1
解决办法
343
查看次数

打印字符串时的grep没有得到匹配

假设我有两个文件,如下所示:

$ cat search_file.txt
This line contains kwd1.
This line contains kwd2.
This line contains no match.
This line contains no match.
This line contains kwd5.
Run Code Online (Sandbox Code Playgroud)
$ cat search_kwd.sh
grep kwd1 search_file.txt
grep kwd2 search_file.txt
grep kwd3 search_file.txt
grep kwd4 search_file.txt
grep kwd5 search_file.txt
Run Code Online (Sandbox Code Playgroud)

当我运行 search_kwd.sh 时,我得到:

$ sh search_kwd.sh
This line contains kwd1.
This line contains kwd2.
This line contains kwd5.
Run Code Online (Sandbox Code Playgroud)

我想string在 grep 没有匹配时打印一个。输出将如下所示:

$ sh search_kwd.sh
This line contains kwd1.
This line contains kwd2.
string
string …
Run Code Online (Sandbox Code Playgroud)

grep bash

5
推荐指数
1
解决办法
2949
查看次数

打印包含多个字符串的文件名

假设我有多个文件,其.ext扩展名包含多行。我需要打印包含所有3个关键字的文件名:kwd1kwd2,和kwd3

我该怎么做?

grep find

-1
推荐指数
1
解决办法
304
查看次数

标签 统计

awk ×2

grep ×2

bash ×1

find ×1