ファイルの内容が長さXで、特定の文字のみが含まれていることを確認してください。

ファイルの内容が長さXで、特定の文字のみが含まれていることを確認してください。

Docker IDのみを含むファイルがあるとしましょう。

myid.id:

28fe2baadbe8da32ed0b99c69b11c01b2d141bc5b732b81e0960086de52fc891

my.id内容が正確に64文字長で、[0-9]と[az]の範囲(おそらく[af])の文字のみが含まれていることを確認したいと思います。

  • どうすればいいですか?
  • ファイルに改行文字が含まれている場合、0x0aこのチェックにそれらを含める/除外するにはどうすればよいですか?

ベストアンサー1

努力する:

$ echo 28fe2baadbe8da32ed0b99c69b11c01b2d141bc5b732b81e0960086de52fc891 | 
awk '{sub(/\r/,"")} length == 64 && /^[[:xdigit:]]+$/'
28fe2baadbe8da32ed0b99c69b11c01b2d141bc5b732b81e0960086de52fc891

または代わりに使用してくださいperl

改行を含む:

perl -ne 'print if length == 64 and /^[[:xdigit:]]+$/'

改行を除く:

perl -nle 'print if length == 64 and /^[[:xdigit:]]+$/'

おすすめ記事