grep/awk/sedを使用してランダムパターンを取得する方法

grep/awk/sedを使用してランダムパターンを取得する方法

文字列を抽出したいログファイルがあります。数値文字列はランダムに生成され、これまでgrep/sed/awkを使用したすべての試行は失敗しました。

次の項目があります。

"id":"30c962de-b448-40ac-ade8-da6a8f49ce88","title":

私が分析したいのは、ランダムに生成された部分です。

30c962de-b448-40ac-ade8-da6a8f49ce88

このタスクを実行するための迅速で汚い方法がある人はいますか?

ベストアンサー1

速すぎて汚いですか?

$ grep -o -P '(?<=")[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}(?=")' input
30c962de-b448-40ac-ade8-da6a8f49ce88

"30c962de-b448-40ac-ade8-da6a8f49ce88"固定長とダッシュ位置(引用符で囲む)を持つ任意の値を見つけて-印刷します。そのセクションにもこだわりたい場合は、デフォルトの"id":提案条件に追加してください(?<=")

jqただし、これがJSONまたは一般データの場合は、適切なパーサーを使用してそのデータ(他のデータなど)を処理することを検討する必要があります。

おすすめ記事