ファイル内のGUIDのみを検索する - Bash

ファイル内のGUIDのみを検索する - Bash

GUIDを含むことができるファイルがあります(それらの標準テキスト表現)。

ファイル内の各GUIDに対してタスクを実行したいと思います。 GUIDは任意の数だけ含めることができます。

読みやすいファイルが用意されています。 GUIDを見つける方法は?

私はそれを使用しなければならないことを知っている。while read FILENAME

私のファイルの例:

GUIDs
--------------------------------------
cf6e328c-c918-4d2f-80d3-71ecaf09bf7b
91d523b0-4926-456e-a9d2-ade713f5b07f
(2 rows)
// THERE IS AN EMPTY LINE HERE AFTER NUMBER OF ROWS

ベストアンサー1

GNUで実装grep(または互換性):

<your-file grep -Ewo '[[:xdigit:]]{8}(-[[:xdigit:]]{4}){3}-[[:xdigit:]]{12}' |
  while IFS= read -r guid; do
    your-action "$guid"
    sleep 5
  done

これらのGUIDは、入力のどこにでも見つけることができます(前後に来ない場合)。単語文字)。

GNUには、正規表現の空でない一致を印刷するオプションがgrepあります。-o

-w完全な単語にのみ一致するSysVの別の非標準拡張です。一致するテキストが単語以外の単語と単語文字の間の遷移と、単語文字が英数字または下線付きの単語と単語以外の文字の間の遷移の間にある場合にのみ一致します。これは、次のものと一致するのを防ぐためです。

あああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ

残りは標準のPOSIX構文です。 ABCDEFも一致します[[:xdigit:]][0123456789abcdef]小文字のGUIDのみを一致させるには。

おすすめ記事