Pattern match does not work in bash scriptHow can I use inverse or negative wildcards when pattern matching in a unix/linux shell?List all files that do not match pattern using lsWhy would I not leave extglob enabled in bash?Get the source directory of a Bash script from within the script itselfHow to check if a string contains a substring in BashHow to check if a program exists from a Bash script?How do I tell if a regular file does not exist in Bash?How do I split a string on a delimiter in Bash?Extract filename and extension in BashHow to concatenate string variables in BashReliable way for a Bash script to get the full path to itselfPassing parameters to a Bash functionEcho newline in Bash prints literal n
How do I reattach a shelf to the wall when it ripped out of the wall?
Don’t seats that recline flat defeat the purpose of having seatbelts?
What is the most expensive material in the world that could be used to create Pun-Pun's lute?
Does tea made with boiling water cool faster than tea made with boiled (but still hot) water?
Checks user level and limit the data before saving it to mongoDB
How can I print the prosodic symbols in LaTeX?
Is there any official lore on the Far Realm?
How can I practically buy stocks?
Your bread will be buttered on both sides
How exactly does Hawking radiation decrease the mass of black holes?
Pre-plastic human skin alternative
Can someone publish a story that happened to you?
What happens to Mjolnir (Thor's hammer) at the end of Endgame?
Why does nature favour the Laplacian?
How can I get this effect? Please see the attached image
How to have a sharp product image?
How to limit Drive Letters Windows assigns to new removable USB drives
How can Republicans who favour free markets, consistently express anger when they don't like the outcome of that choice?
Random Forest different results for same observation
I preordered a game on my Xbox while on the home screen of my friend's account. Which of us owns the game?
"Whatever a Russian does, they end up making the Kalashnikov gun"? Are there any similar proverbs in English?
Read line from file and process something
Is there really no use for MD5 anymore?
Why did some of my point & shoot film photos come back with one third light white or orange?
Pattern match does not work in bash script
How can I use inverse or negative wildcards when pattern matching in a unix/linux shell?List all files that do not match pattern using lsWhy would I not leave extglob enabled in bash?Get the source directory of a Bash script from within the script itselfHow to check if a string contains a substring in BashHow to check if a program exists from a Bash script?How do I tell if a regular file does not exist in Bash?How do I split a string on a delimiter in Bash?Extract filename and extension in BashHow to concatenate string variables in BashReliable way for a Bash script to get the full path to itselfPassing parameters to a Bash functionEcho newline in Bash prints literal n
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
Using the pattern match !("file1")
does not work within a bash script but will work on the command line.
For example:
ls !("file1"|"file2")
This will list all files in directory except file1
and file2
.
When that line is executed in a script this error is displayed:
./script.sh: line 1: syntax error near unexpected token `('
./script.sh: line 1: ` ls !("file1"|"file2") '
Regardless what is used rm -v !("file1")
. The same error takes place. What is going on here why does this not work in a script?
linux bash glob extglob
add a comment |
Using the pattern match !("file1")
does not work within a bash script but will work on the command line.
For example:
ls !("file1"|"file2")
This will list all files in directory except file1
and file2
.
When that line is executed in a script this error is displayed:
./script.sh: line 1: syntax error near unexpected token `('
./script.sh: line 1: ` ls !("file1"|"file2") '
Regardless what is used rm -v !("file1")
. The same error takes place. What is going on here why does this not work in a script?
linux bash glob extglob
Possible duplicate of How can I use inverse or negative wildcards when pattern matching in a unix/linux shell?, List all files that do not match pattern using ls, etc. And related is Why would I not leave extglob enabled in bash?
– jww
Apr 6 at 13:23
add a comment |
Using the pattern match !("file1")
does not work within a bash script but will work on the command line.
For example:
ls !("file1"|"file2")
This will list all files in directory except file1
and file2
.
When that line is executed in a script this error is displayed:
./script.sh: line 1: syntax error near unexpected token `('
./script.sh: line 1: ` ls !("file1"|"file2") '
Regardless what is used rm -v !("file1")
. The same error takes place. What is going on here why does this not work in a script?
linux bash glob extglob
Using the pattern match !("file1")
does not work within a bash script but will work on the command line.
For example:
ls !("file1"|"file2")
This will list all files in directory except file1
and file2
.
When that line is executed in a script this error is displayed:
./script.sh: line 1: syntax error near unexpected token `('
./script.sh: line 1: ` ls !("file1"|"file2") '
Regardless what is used rm -v !("file1")
. The same error takes place. What is going on here why does this not work in a script?
linux bash glob extglob
linux bash glob extglob
edited Apr 6 at 7:21
James Brown
20.7k42038
20.7k42038
asked Apr 6 at 7:12
OgdenOgden
734
734
Possible duplicate of How can I use inverse or negative wildcards when pattern matching in a unix/linux shell?, List all files that do not match pattern using ls, etc. And related is Why would I not leave extglob enabled in bash?
– jww
Apr 6 at 13:23
add a comment |
Possible duplicate of How can I use inverse or negative wildcards when pattern matching in a unix/linux shell?, List all files that do not match pattern using ls, etc. And related is Why would I not leave extglob enabled in bash?
– jww
Apr 6 at 13:23
Possible duplicate of How can I use inverse or negative wildcards when pattern matching in a unix/linux shell?, List all files that do not match pattern using ls, etc. And related is Why would I not leave extglob enabled in bash?
– jww
Apr 6 at 13:23
Possible duplicate of How can I use inverse or negative wildcards when pattern matching in a unix/linux shell?, List all files that do not match pattern using ls, etc. And related is Why would I not leave extglob enabled in bash?
– jww
Apr 6 at 13:23
add a comment |
3 Answers
3
active
oldest
votes
The extended glob syntax you are trying to use is turned off by default; you have to enable it separately in each script where you want to use it.
shopt -s extglob
Scripts should not use ls
though I imagine you were using it merely as a placeholder here.
add a comment |
Globbing doesn't work that way unless you enable extglob
shell opt. Instead, I recommend using find
:
find . -maxdepth 1 -not -name '<NAME>' -or -name '<NAME>' -delete
before running this command with -delete
ensure the output is correct
add a comment |
Method with default settings and no external procs:
for f in *; do [[ $f =~ ^file[12]$ ]] || echo "$f"; done
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
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
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55546727%2fpattern-match-does-not-work-in-bash-script%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
The extended glob syntax you are trying to use is turned off by default; you have to enable it separately in each script where you want to use it.
shopt -s extglob
Scripts should not use ls
though I imagine you were using it merely as a placeholder here.
add a comment |
The extended glob syntax you are trying to use is turned off by default; you have to enable it separately in each script where you want to use it.
shopt -s extglob
Scripts should not use ls
though I imagine you were using it merely as a placeholder here.
add a comment |
The extended glob syntax you are trying to use is turned off by default; you have to enable it separately in each script where you want to use it.
shopt -s extglob
Scripts should not use ls
though I imagine you were using it merely as a placeholder here.
The extended glob syntax you are trying to use is turned off by default; you have to enable it separately in each script where you want to use it.
shopt -s extglob
Scripts should not use ls
though I imagine you were using it merely as a placeholder here.
edited Apr 6 at 7:39
answered Apr 6 at 7:17
tripleeetripleee
97.1k14136191
97.1k14136191
add a comment |
add a comment |
Globbing doesn't work that way unless you enable extglob
shell opt. Instead, I recommend using find
:
find . -maxdepth 1 -not -name '<NAME>' -or -name '<NAME>' -delete
before running this command with -delete
ensure the output is correct
add a comment |
Globbing doesn't work that way unless you enable extglob
shell opt. Instead, I recommend using find
:
find . -maxdepth 1 -not -name '<NAME>' -or -name '<NAME>' -delete
before running this command with -delete
ensure the output is correct
add a comment |
Globbing doesn't work that way unless you enable extglob
shell opt. Instead, I recommend using find
:
find . -maxdepth 1 -not -name '<NAME>' -or -name '<NAME>' -delete
before running this command with -delete
ensure the output is correct
Globbing doesn't work that way unless you enable extglob
shell opt. Instead, I recommend using find
:
find . -maxdepth 1 -not -name '<NAME>' -or -name '<NAME>' -delete
before running this command with -delete
ensure the output is correct
answered Apr 6 at 7:17
RafaelRafael
5,102102339
5,102102339
add a comment |
add a comment |
Method with default settings and no external procs:
for f in *; do [[ $f =~ ^file[12]$ ]] || echo "$f"; done
add a comment |
Method with default settings and no external procs:
for f in *; do [[ $f =~ ^file[12]$ ]] || echo "$f"; done
add a comment |
Method with default settings and no external procs:
for f in *; do [[ $f =~ ^file[12]$ ]] || echo "$f"; done
Method with default settings and no external procs:
for f in *; do [[ $f =~ ^file[12]$ ]] || echo "$f"; done
edited Apr 6 at 18:24
answered Apr 6 at 7:50
vintnesvintnes
3257
3257
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
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
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55546727%2fpattern-match-does-not-work-in-bash-script%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
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
Required, but never shown
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
Required, but never shown
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
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Possible duplicate of How can I use inverse or negative wildcards when pattern matching in a unix/linux shell?, List all files that do not match pattern using ls, etc. And related is Why would I not leave extglob enabled in bash?
– jww
Apr 6 at 13:23