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