arquivos Cat, exceto um [duplicado]

4

Eu estou procurando por algo para concatenar todos os arquivos com uma determinada extensão dentro de um diretório, exceto um. Como:

cat *.txt !(DISCARD.txt)  > catKEPT

Isso deve concatenar todos os arquivos * .txt no diretório, exceto DISCARD.txt.

    
por dovah 28.11.2015 / 11:43

2 respostas

5
find . -maxdepth 1 -iname '*.txt' -not -name 'DISCARD.txt' -exec cat {} +>catKEPT
    
por 28.11.2015 / 11:45
2

Se você estiver usando bash (na maioria das vezes, esse é o caso), você pode usar a opção extglob shell que estenderá seu shell com uma sintaxe de correspondência de padrões mais poderosa.

Você pode ativá-lo com shopt -s extglob e desativá-lo com shopt -u extglob .

No seu exemplo, você simplesmente faria:

$ shopt -s extglob
$ cat -- !(DISCARD).txt > catKEPT

Você pode encontrar mais informações sobre esse comando neste Resposta do StackOverflow .

    
por 28.11.2015 / 11:51