解析後に他の列の内容を失うことなく特定の列やデータを解析する方法は?

解析後に他の列の内容を失うことなく特定の列やデータを解析する方法は?

元の質問と編集されたテキスト:この例では、「225」の値をgrepするために、次の出力があります。値は動的であるため、入力に応じて変更される可能性があります。」しかし、行全体の内容を失うことなく、列4の一致パターンのみに基づいて値225を使用して行全体を取得したいと思います。

Input:
10.20.223.10|2000-H1|1/1/2|DeviceX_4021|LG
10.20.223.10|2000-H1|1/1/3|Undiscoverable|Unkwn
10.20.225.10|2000-H1|1/1/5|DeviceZ_2050|LG
10.20.223.10|2000-H1|1/1/8|DeviceY_225_|Kenmore

Desired Output
10.20.223.10|2000-H1|1/1/8|DeviceY_225_|Kenmore

The following output its not desired:
10.20.225.10|2000-H1|1/1/5|DeviceZ_2050|LG
10.20.223.10|2000-H1|1/1/8|DeviceY_225_|Kenmore

awkとgrepをたくさん試しましたが、成功しませんでした。列1、行3の値は225なので、対応する出力は必要ありません。 「225」に一致する列4のすべての項目が必要です。これで、ファイルはスペースなしでパイプで区切られます。

ベストアンサー1

使用awk:

awk -F'|' '$4 ~ /[^0-9]225[^0-9]/' file

これは225、4番目のフィールドで一致し、一致する値(1225または2256)の前後に数字のないレコードを印刷します。

おすすめ記事