I'm looking for something to concatenate all files with given extension within a directory, except one. Like:
cat *.txt !(DISCARD.txt) > catKEPT
This should concatenate all *.txt files in directory, except DISCARD.txt.
I'm looking for something to concatenate all files with given extension within a directory, except one. Like:
cat *.txt !(DISCARD.txt) > catKEPT
This should concatenate all *.txt files in directory, except DISCARD.txt.
If you are using bash
(most of the time this is the case), you may use the extglob
shell option that will extend your shell with a more powerful pattern matching syntax.
You can turn it on with shopt -s extglob
, and turn it off with shopt -u extglob
.
In your example, you would simply do:
$ shopt -s extglob
$ cat -- !(DISCARD).txt > catKEPT
You can find more about this command in this StackOverflow answer.
bash
? Try echo $SHELL
to know what shell you are using.
– perror
Nov 28 '15 at 11:16
.txt
files so you'll have to use the glob like this: cat -- !(DISCARD).txt
– don_crissti
Nov 28 '15 at 11:32