比方说,我的文件只包含一个 docker id:
myid.id
:
28fe2baadbe8da32ed0b99c69b11c01b2d141bc5b732b81e0960086de52fc891
Run Code Online (Sandbox Code Playgroud)
我想检查的内容my.id
是否正好是64
字符长,并且只包含 [0-9] 和 [az](可能是 [af])范围内的字符。
0x0a
,我如何在此检查中包含/排除它?尝试:
$ echo 28fe2baadbe8da32ed0b99c69b11c01b2d141bc5b732b81e0960086de52fc891 |
awk '{sub(/\r/,"")} length == 64 && /^[[:xdigit:]]+$/'
28fe2baadbe8da32ed0b99c69b11c01b2d141bc5b732b81e0960086de52fc891
Run Code Online (Sandbox Code Playgroud)
或perl
改用。
包括换行符:
perl -ne 'print if length == 64 and /^[[:xdigit:]]+$/'
Run Code Online (Sandbox Code Playgroud)
排除换行符:
perl -nle 'print if length == 64 and /^[[:xdigit:]]+$/'
Run Code Online (Sandbox Code Playgroud)
全行grep怎么样
grep -qxE '[[:xdigit:]]{64}' myid.id && echo "yes"
Run Code Online (Sandbox Code Playgroud)
或(不确定这个)特定于 bash 的
IFS= read -r id < myid.id
[[ ${#id} -eq 64 ]] && [[ $id =~ [[:xdigit:]]{64} ]] && echo "yes"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1127 次 |
最近记录: |