用于读取文档中某些关键字的脚本

用于读取文档中某些关键字的脚本

我有一个包含 50 个文件夹的列表。在每个文件夹中,我都有一个包含关键字的文本文件,并且该文件在所有文件夹中具有相同的名称,但具有不同的值。脚本如何读取这些文本文件中的某些关键字并将这些结果保存(收集)到新文件中?

    folder A 
       text.file (inside it key words let us say Abc=1 Def=2 Ghi=3 )
    folder b
       text.file(inside it key words let us say Abc=5 Def=1 Ghi=4 )
    folder c
       text.file(inside it key words let us say Abc=11 Def=12 Ghi=32 )
    folder d
       text.file(inside it key words let us say Abc=11 Def=27 Ghi=34 )
    folder e
       text.file(inside it key words let us say Abc=16 Def=12 Ghi=22 )
    folder f
       text.file(inside it key words let us say Abc=3 Def=2 Ghi=1)
    .
    .
    .
    .
    folder N

文本文件中的关键词排序如下(50文件夹中包含的所有文件中关键词的排序方式相同)

    Abc= value
    Def= value
    Ghi= value

例如:我需要脚本读取所有文件中的关键字“Abc”并保存输出(即在新文件中分别收集关键字“Abc”的值),因为文本文件仅包含“Abc”所有文件夹中的“值如下:

Abc=1
Abc=5
Abc=11
Abc=11
Abc=16
Abc=3

答案1

如果所有关键词在text.file中排序如下(并且关键词的排序在50文件夹中包含的所有文件中都是相同的)

Abc= value
Def= value
Ghi= value

然后您可以将它们的第一行读head -n 1 filename入 for 循环并将其写入新文件中,如下所示:

$ for file in ~/Parent_dir/Folder*/*; do  head -n 1 $file; done
 Abc=1
 Abc=5
 Abc=11
 Abc=11
 Abc=16
 Abc=3

您的脚本将如下所示:

for file in ~/Parent_dir/Folder*/*; do
    head -n 1 $file;
done > newfile

相关内容