Tente isso com o recurso de correspondência estendida de bash:
shopt -s extglob
cat !(readme.md|contrib.rst|licence.txt)
Se houver alguma sintaxe específica para que eu possa cat
de todos os arquivos em um diretório, exceto os selecionados. Por exemplo, suponha que eu tenha ~ 1200 arquivos de texto contendo algumas linhas, cerca de 3 ou 4 linhas por arquivo, exceto que existem alguns arquivos:
readme.md
contrib.rst
licence.txt
que são mais longos. Quero ver o conteúdo de todos os arquivos, exceto os 3 (ou, se possível, mais) arquivos mencionados acima.
Eu tentei o seguinte comando:
cat !{readme.md,contrib.rst,licence.txt}*.*
porque vi em algum lugar um uso de cat
da seguinte forma:
cat [!t][!m][!p]*.sh
Eu pensei que, desde, {a,b}
significa um conjunto em bash-scripts, negando que isso funcione. Claro que eu estava errado.
Tente isso com o bash:
GLOBIGNORE="readme.md:contrib.rst:licence.txt"
cat *
unset GLOBIGNORE
O que você já tentou?
São sempre os mesmos arquivos que você deseja ignorar.
Nesse caso, você pode codificá-los em um comando. Por exemplo. algo como find ! -name readme.md -o ! -name contrib.rst -o ! -name licence.txt -exec cat {} \+
Agora, se você quiser algo que pule todos os arquivos maiores que 4 linhas sem conhecer os nomes dos arquivos de antemão, a solução ficará obviamente mais complexa. Nesse caso, edite sua postagem.
Sem modificar a configuração atual do shell , é possível executar cada proposta Cyrus em um subshell
(GLOBIGNORE="readme.md:contrib.rst:licence.txt" ; cat *)
bem como
(shopt -s extglob; cat !(readme.md|contrib.rst|licence.txt))