次の形式の固定長ファイルがあります:
Name Age Party Role
---------- ---------- ------------------ --------------
Shubham 27 XYZ User
Drek 28 ABC Admin
Raj 23 USR User
ここで、Age <25のすべてのパーティを含むファイルを出力するシェルスクリプト/コマンドを記述したいと思います。この場合、次のように出力されます。
Party
-----------------
USR
私はawkとshellに不慣れです。awkとsubstrを使用してみましたが、ファイルが巨大であるため(複数の列で200000行を超える)、コストがかかりすぎます。これを行うためのきちんとした方法はありますか?
アップデート
どのフィールドにもスペースを入れることができます。本当の考えは、ファイルが固定長のファイルであるということです。したがって、各レコードの長さは固定されています(Name:10、Age:10、Part:20、Role:10)。ただし、レコードには、スペースや空白など、データ内に何でも含めることができます。例えば:
Name Age Party Role
---------- ---------- ------------------ --------------
Shub A 27 XYZ & A User
Drek GH 28 ABC & C Admin
Raj 23 USR User
等々。ここで、Nameを使用して選択を行い、スクリプトがName="ShubA"であるPartyレコードを出力するようにします。したがって、ここでの出力は次のようになります。
Party
-------------------
XYZ & A