小编Oci*_*ity的帖子

将一个文件搜索到另一个文件,打印匹配和下一行

这是我的问题:我有两个文件,一个有名字(大约1k行,没有重复)

File_Names

A
C
F
Run Code Online (Sandbox Code Playgroud)

还有第二个带有名称和数据的文件(大约100k行,没有重复)

File_Data

A
Data_A
B
Data_B
C
Data_C
D
Data_D
E
Data_E
F
Data_F
Run Code Online (Sandbox Code Playgroud)

我需要从名称搜索到数据文件,打印结果和下一行.

就像是:

A
Data_A
C
Data_C
F
Data_F
Run Code Online (Sandbox Code Playgroud)

我有找到数据文件名称的部分,但仍无法打印下一行

awk 'FNR==NR{
        a[$1]++;
        next}
        a[$1]
' File_Names File_Data
Run Code Online (Sandbox Code Playgroud)

这回来了

A
C
F
Run Code Online (Sandbox Code Playgroud)

这是我所保留的代码的一部分,因为我已经尝试过其他代码

awk 'FNR==NR{
    a[$0]=FNR;i=FNR;next}
($0 in a){
    t=$0;
    getline;b[a[t]]=$0}
END{
    for(k=1;k<=i;k++)print b[k]
}'
Run Code Online (Sandbox Code Playgroud)

并添加/删除行,如:

- {x=NR+1}(NR<=x){print}
- {getline;print;}
Run Code Online (Sandbox Code Playgroud)

也尝试使用grep

grep -f File_Names File_Data
Run Code Online (Sandbox Code Playgroud)

但仍然没有.对不起重复的问题,但可用的解决方案对我不起作用.提前致谢.

bash awk grep

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

标签 统计

awk ×1

bash ×1

grep ×1