文字列に文字(特定の文字ではなく実際にはすべての文字)が複数回含まれていることを確認したいと思います。
たとえば、
ユーザー:
test.sh this list
スクリプト:
if [ "$1" has some letter more then once ]
then
do something
fi
ベストアンサー1
あなたはそれを使用することができますgrep
。
正規表現は、\(.\).*\1
ランダムな単一文字、その後にランダムな文字、その後に同じ最初の文字が続くものと一致します。
grep
1 つ以上の行が正規表現と一致する場合、成功を返します。
if echo "$1" | grep -q '\(.\).*\1' ; then
echo "match" ;
fi
文字以外のすべての文字と一致させるには、正規表現を「」の特定の定義\(.\)
に制限する必要があります。本当にどんな手紙でも" . または同じものを使用できます\([[:alnum:]]\).*\1
。\([[:alpha:]]\).*\1
\([a-df-z1245]\).*\1