【问题标题】:Awk extract lines from a file with another file as indexawk 从一个文件中提取行,另一个文件作为索引
【发布时间】:2018-07-22 14:20:22
【问题描述】:

我有 2 个文件:一个有 100 个值的索引,另一个包含很多信息我只想从我的索引文件中提取信息。例如:

文件1.txt

-name1

-name2

-name3

文件2.txt:

Read name: name1

sometext  
sometext  
Complete

Read name: name8 (not index)

sometext  
sometext  
Complete

Read name: name2

sometext  
sometext  
Complete

结果:

name1

sometext  
sometext  
Complete

name2

sometext  
sometext  
Complete

如何使用文本提取 File2 的名称,直到以 File1 为索引完成?我是 awk 的新手,我认为我需要使用正则表达式.. 我希望你能理解谢谢你的帮助:)

【问题讨论】:

    标签: file awk text-processing


    【解决方案1】:

    Awk解决方案:

    awk 'NR==FNR && NF{ a[substr($1, 2)]; next }
         /^name/{ f=($1 in a) }f' file1.txt file2.txt
    

    输出:

    name1
    
    sometext
    sometext
    Complete
    
    name2
    
    sometext
    sometext
    Complete
    

    【讨论】:

    • 找不到任何匹配项。也许要搜索的模式是行的第一个?
    • @RandomX27,再次检查您的输入文件内容并更正它们以反映真实数据
    猜你喜欢
    • 2013-09-10
    • 2023-03-10
    • 2017-03-05
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 1970-01-01
    相关资源
    最近更新 更多