How to negate Bash's Regular Expression Matching Operator
Clash Royale CLAN TAG#URR8PPP
up vote
0
down vote
favorite
Bash has the =~
regular expression matching operator. Here is an example of using it:
#!/bin/bash
input=$1
if [[ "$input" =~ "[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]" ]]
# ^ NOTE: Quoting not necessary, as of version 3.2 of Bash.
# NNN-NN-NNNN (where each N is a digit).
then
echo "Social Security number."
# Process SSN.
else
echo "Not a Social Security number!"
# Or, ask for corrected input.
fi
For negation, all the examples I have seen rely on an else
clause. For situations where I am only interested in negative matches, is there a better way that making a non-functional if
clause?
For example, if I only cared about the case where the above input is not a Not a Social Security number, what is the right way to go about this?
bash regular-expression pattern-matching
add a comment |Â
up vote
0
down vote
favorite
Bash has the =~
regular expression matching operator. Here is an example of using it:
#!/bin/bash
input=$1
if [[ "$input" =~ "[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]" ]]
# ^ NOTE: Quoting not necessary, as of version 3.2 of Bash.
# NNN-NN-NNNN (where each N is a digit).
then
echo "Social Security number."
# Process SSN.
else
echo "Not a Social Security number!"
# Or, ask for corrected input.
fi
For negation, all the examples I have seen rely on an else
clause. For situations where I am only interested in negative matches, is there a better way that making a non-functional if
clause?
For example, if I only cared about the case where the above input is not a Not a Social Security number, what is the right way to go about this?
bash regular-expression pattern-matching
add a comment |Â
up vote
0
down vote
favorite
up vote
0
down vote
favorite
Bash has the =~
regular expression matching operator. Here is an example of using it:
#!/bin/bash
input=$1
if [[ "$input" =~ "[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]" ]]
# ^ NOTE: Quoting not necessary, as of version 3.2 of Bash.
# NNN-NN-NNNN (where each N is a digit).
then
echo "Social Security number."
# Process SSN.
else
echo "Not a Social Security number!"
# Or, ask for corrected input.
fi
For negation, all the examples I have seen rely on an else
clause. For situations where I am only interested in negative matches, is there a better way that making a non-functional if
clause?
For example, if I only cared about the case where the above input is not a Not a Social Security number, what is the right way to go about this?
bash regular-expression pattern-matching
Bash has the =~
regular expression matching operator. Here is an example of using it:
#!/bin/bash
input=$1
if [[ "$input" =~ "[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]" ]]
# ^ NOTE: Quoting not necessary, as of version 3.2 of Bash.
# NNN-NN-NNNN (where each N is a digit).
then
echo "Social Security number."
# Process SSN.
else
echo "Not a Social Security number!"
# Or, ask for corrected input.
fi
For negation, all the examples I have seen rely on an else
clause. For situations where I am only interested in negative matches, is there a better way that making a non-functional if
clause?
For example, if I only cared about the case where the above input is not a Not a Social Security number, what is the right way to go about this?
bash regular-expression pattern-matching
bash regular-expression pattern-matching
asked 3 mins ago
MountainX
4,7732469122
4,7732469122
add a comment |Â
add a comment |Â
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f477384%2fhow-to-negate-bashs-regular-expression-matching-operator%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password